def Read.is_later

bend-trace-context@0.2.0.0 · trace_context.bend:2830

import bend-trace-context@0.2.0.0/trace_context.bend as TraceContext
import Base
import bend-trace-context@0.2.0.0/src/hex.bend as Hex
import bend-trace-context@0.2.0.0/src/digits.bend as Digits

2830# Whether a value's version, from its two digits, is later than 00 and so
2831# read by its known prefix (W3C 3.2.2.1 and 3.2.4): Done{False{}} for 00,
2832# which the strict codec reads, Done{True{}} for 01 to fe, and a refusal for
2833# ff.
2834def Read.is_later(digits: Digits.Digits(2n)) -> Result<&2, &2, Error, Bool>:
2835  match digits:
2836    case Digits.DCon{Hex.H0{}, Digits.DCon{Hex.H0{}, Digits.DNil{}}}:
2837      Done{False{}}
2838    case Digits.DCon{Hex.Hf{}, Digits.DCon{Hex.Hf{}, Digits.DNil{}}}:
2839      Fail{ForbiddenVersion{}}
2840    case other:
2841      Done{True{}}

Uses (7)

Used by (1)