def u32.read.go
bend-kit-bytes@0.3.3.0 · bytes.bend:767
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import Base
767
768def u32.read.go(n: Nat, r: Array<U32> & U32, +i: U32, +acc: U32, +ok: Bool) -> Maybe<&2, U32>:
769 match n:
770 case 0n:
771 (a, v) = r
772 Bool.pick(Maybe<&2, U32>, ok, Some{acc}, None{})
773 case 1n+p:
774 (a, +v) = r
775 +m = (acc * 10 + (v - 48) : U32)
776 u32.read.go(p, peek(a, (i + 1 : U32)), (i + 1 : U32), m, Bool.and(ok, Bool.and(in(48, v, 57), U32.is_eq((m / 10 : U32), acc))))