def utf8.go
bend-kit-camber@0.15.0.1 · input.bend:94
import bend-kit-camber@0.15.0.1/input.bend as Input
import Base
import bend-kit-router@0.2.0.0/target.bend as Target
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
94def utf8.go(fuel: Nat, pair: Array<U32> & Maybe<&2, Target.Utf>, +index: U32) -> Array<U32> & Maybe<&2, String>:
95 match fuel:
96 case 0n:
97 (bytes, state) = pair
98 (bytes, Target.utf.finish(state))
99 case 1n+rest:
100 (bytes, state) = pair
101 match state:
102 case None{}: (bytes, None{})
103 case Some{state}: utf8.go(rest, utf8.step(Bytes.peek(bytes, index), state), (index + 1 : U32))