def digit.of
emerging-ezhttp@0.21.0.0 · src/unescape.bend:33
import emerging-ezhttp@0.21.0.0/src/unescape.bend as Unescape
import Base
33
34def digit.of(hex: Bool, +cp: U32) -> U32:
35 match hex:
36 case True{}:
37 Bool.pick(U32, Bool.and(U32.is_le(48, cp), U32.is_le(cp, 57)),
38 U32.sub(cp, 48),
39 Bool.pick(U32, Bool.and(U32.is_le(65, cp), U32.is_le(cp, 70)),
40 U32.sub(cp, 55),
41 Bool.pick(U32, Bool.and(U32.is_le(97, cp), U32.is_le(cp, 102)),
42 U32.sub(cp, 87), 16)))
43 case False{}:
44 Bool.pick(U32, Bool.and(U32.is_le(48, cp), U32.is_le(cp, 57)),
45 U32.sub(cp, 48), 16)