def utf8.cat.pick
cswap-bend-cli@0.1.0.0 · b64.bend:8
import cswap-bend-cli@0.1.0.0/b64.bend as B64
import Base
8def utf8.cat.pick(a: Bool, b: Bool, d: Bool, +c: U32, rest: List<&2, U32>) -> List<&2, U32>:
9 match a b d:
10 case True{} _ _:
11 c <> rest
12 case False{} True{} _:
13 (192 .|. (c >> 6n) : U32) <> (128 .|. (c .&. 63) : U32) <> rest
14 case False{} False{} True{}:
15 (224 .|. (c >> 12n) : U32) <> (128 .|. ((c >> 6n) .&. 63) : U32) <> (128 .|. (c .&. 63) : U32) <> rest
16 case False{} False{} False{}:
17 (240 .|. (c >> 18n) : U32) <> (128 .|. ((c >> 12n) .&. 63) : U32) <> (128 .|. ((c >> 6n) .&. 63) : U32) <> (128 .|. (c .&. 63) : U32) <> rest