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)

Uses (15)

Used by (1)