def decode.lead

bolt@1.27.0.0 · src/lsp/frame.bend:15

import bolt@1.27.0.0/src/lsp/frame.bend as Frame
import Base

15# a lead byte, by its high nibble; a stray continuation byte stands for itself
16def decode.lead(hi: U32, +bb: U32, out: List<&2, Char>) -> Dec:
17  match hi:
18    case 12:
19      Dec{1n, (bb .&. 31 : U32), out}
20    case 13:
21      Dec{1n, (bb .&. 31 : U32), out}
22    case 14:
23      Dec{2n, (bb .&. 15 : U32), out}
24    case 15:
25      Dec{3n, (bb .&. 7 : U32), out}
26    case other:
27      Dec{0n, 0, Char.from_u32(bb) <> out}

Uses (9)

Used by (1)