Tar.dec.go: def of bend-kit-tar@0.3.0.0 Import: import bend-kit-tar@0.3.0.0/tar.bend as Tar Lines 86-104 of bend-kit-tar@0.3.0.0/tar.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-tar@0.3.0.0/tar.bend&start_line=86&end_line=104 import Base import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes # Consume decimal digits and, when present, their first non-digit delimiter. def dec.go(n: Nat, r: Bytes.Cursor & Maybe<&2, DByte>, +acc: U32, +digits: U32, +ok: Bool) -> Bytes.Cursor & Dec: match n: case 0n: (c, m) = r (c, Dec{acc, digits, 0, True{}, ok}) case 1n+p: (c, m) = r match m: case None{}: (c, Dec{acc, digits, 0, True{}, False{}}) case Some{DByte{+b, digit}}: match digit: case False{}: (c, Dec{acc, digits, b, False{}, ok}) case True{}: +v = (b - 48 : U32) +fit = U32.is_lt(acc, 429496729) || (U32.is_eq(acc, 429496729) && U32.is_le(v, 5)) dec.go(p, Bytes.Cursor.read(~DByte, ~dec.byte, c, 1), ((acc * 10) + v : U32), (digits + 1 : U32), ok && fit) Uses (19): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_eq https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_le https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.is_lt https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub https://jend.leeeet.dev/definition.txt?path=bend-kit-bytes@0.3.3.0/bytes.bend&name=Cursor https://jend.leeeet.dev/definition.txt?path=bend-kit-bytes@0.3.3.0/bytes.bend&name=Cursor.read https://jend.leeeet.dev/definition.txt?path=bend-kit-tar@0.3.0.0/tar.bend&name=DByte https://jend.leeeet.dev/definition.txt?path=bend-kit-tar@0.3.0.0/tar.bend&name=Dec https://jend.leeeet.dev/definition.txt?path=bend-kit-tar@0.3.0.0/tar.bend&name=dec.byte