def cstr.go
bend-kit-tar@0.3.0.0 · tar.bend:54
import bend-kit-tar@0.3.0.0/tar.bend as Tar
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
54def cstr.go(n: Nat, r: Array<U32> & U32, +j: U32, +k: U32, +done: Bool) -> Array<U32> & U32:
55 match n:
56 case 0n:
57 (a, c) = r
58 (a, k)
59 case 1n+p:
60 (a, +c) = r
61 match done:
62 case True{}:
63 (a, k)
64 case False{}:
65 +stop = U32.is_eq(c, 0)
66 cstr.go(p, Bytes.peek(a, (j + 1 : U32)), (j + 1 : U32), Bool.pick(U32, stop, k, (k + 1 : U32)), stop)