def utf8.decode.go
bend-kit-protobuf@0.2.0.0 · protobuf.bend:734
import bend-kit-protobuf@0.2.0.0/protobuf.bend as Protobuf
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as B
734def utf8.decode.go(n: Nat, r: B.Cursor & Maybe<&2, U32>, st: Utf8) -> Result<&2, &2, Error, String>:
735 match n:
736 case 0n:
737 Utf8{need, lo, hi, cp, out} = st
738 utf8.finish(U32.is_zero(need), out)
739 case 1n+p:
740 (next, v) = r
741 match v:
742 case None{}:
743 Fail{InvalidUtf8{}}
744 case Some{b}:
745 do Result<&2, &2, Error, String>:
746 state : Utf8 <- utf8.step(st, b)
747 utf8.decode.go(p, B.Cursor.u8(next), state)