Multipart.go: def of bend-kit-multipart@0.3.0.0 Import: import bend-kit-multipart@0.3.0.0/multipart.bend as Multipart Lines 587-600 of bend-kit-multipart@0.3.0.0/multipart.bend: https://jend.leeeet.dev/read.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&start_line=587&end_line=600 import Base # Each More step consumes a byte, except the two after a delimiter, which itself consumes dlen >= 5, # so len + 8 steps suffice. Running out still returns a sound state: the next feed goes on from it. def go(fuel: Nat, +delim: String, +dlen: U32, s: Step) -> Result<&1, &1, String, Dec & List<&1, Item>>: match fuel: case 0n: go.stop(delim, dlen, s) case 1n+p: match s: case More{st, buf, out}: go(p, delim, dlen, step(st, delim, dlen, buf, out)) case Pause{st, buf, out}: go.stop(delim, dlen, Pause{st, buf, out}) case Bad{e}: Fail{e} Uses (11): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List 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=Result https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=String https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&name=Dec https://jend.leeeet.dev/definition.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&name=Item https://jend.leeeet.dev/definition.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&name=Step https://jend.leeeet.dev/definition.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&name=go.stop https://jend.leeeet.dev/definition.txt?path=bend-kit-multipart@0.3.0.0/multipart.bend&name=step