def rd.chars

bend-kit-runner@0.13.0.1 · runner.bend:822

import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base

822# Each rd.* sequence reader takes the count or flag already read. fuel bounds its length: every item holds at least 4 octets.
823def rd.chars(+fuel: Nat, end: Bool, +n: U32) -> Dec(String):
824  match fuel end:
825    case 0n b:
826      Dec.fail(String)
827    case 1n+f True{}:
828      Dec.pure(String, SNil{})
829    case 1n+f False{}:
830      +k = (n - 1 : U32)
831      do Dec<String>:
832        c : U32 <- rd.u32()
833        rest : String <- rd.chars(f, U32.is_eq(k, 0), k)
834        return SCon{Chr{c}, rest}

Uses (12)

Used by (1)