def digits.go

emerging-ezhttp@0.21.0.0 · src/http.bend:208

import emerging-ezhttp@0.21.0.0/src/http.bend as Http
import 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))

Uses (9)

Used by (1)