def utf8.step

mylsm-lsm-store@0.6.0.1 · src/StorageBytes.bend:37

import mylsm-lsm-store@0.6.0.1/src/StorageBytes.bend as StorageBytes
import Base

37def utf8.step(state: Utf8State, +byte: U32) -> Utf8State:
38  match state:
39    case Utf8State{0, _, _, _, out, True{}}:
40      utf8.lead(byte, out)
41    case Utf8State{0, _, _, _, out, False{}}:
42      Utf8State{0, 128, 191, 0, out, False{}}
43    case Utf8State{need, lo, hi, cp, out, ok}:
44      utf8.cont(need, cp, out, ok, U32.is_le(lo, byte) && U32.is_le(byte, hi), byte)

Uses (9)

Used by (2)