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)