def read_u.go

bendonnect-rpc@0.1.0.0 · src/pb.bend:198

import bendonnect-rpc@0.1.0.0/src/pb.bend as Pb
import Base
import bend-kit-protobuf@0.1.0.0/protobuf.bend as Pb

198def read_u.go(s: String, w: Pb.Word64, bad: Bool) -> Maybe<&2, Pb.Word64>:
199  match s:
200    case SNil{}:
201      Bool.pick(Maybe<&2, Pb.Word64>, bad, None{}, Some{w})
202    case SCon{Chr{+c}, t}:
203      +digit = U32.is_ge(c, 48) && U32.is_le(c, 57)
204      +a = word64.muladd10(w, Bool.pick(U32, digit, (c - 48 : U32), 0))
205      read_u.go(t, acc.w(a), bad || acc.o(a) || Bool.not(digit))

Uses (16)

Used by (1)