def digits.go
import emerging-ezhttp@0.21.0.0/src/http.bend as Httpimport Base
208# read a decimal token without building Base's Nat.read ceiling
209def digits.go(s: String, +acc: Nat, left: Nat) -> Maybe<&2, Nat>:
210 match s left:
211 case _ 0n:
212 None{}
213 case SNil{} 1n+k:
214 Some{acc}
215 case SCon{+h, t} 1n+k:
216 +d = digits.val(h)
217 digits.step(U32.is_lt(d, 10),
218 _u => digits.go(t, Nat.add(Nat.mul(acc, 10n), U32.to_nat(d)), k))