def decode_all.go

bendonnect-rpc@0.1.0.0 · src/envelope.bend:128

import bendonnect-rpc@0.1.0.0/src/envelope.bend as Envelope
import Base
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

128# fuel: every envelope takes at least 5 bytes, so (bytes + 1) steps always suffice.
129def decode_all.go(fuel: Nat, s: Step, +max: U32) -> Result<&2, &1, String, List<&1, Envelope>>:
130  match fuel:
131    case 0n:
132      Fail{"envelope decoder out of fuel"}
133    case 1n+p:
134      match s:
135        case Need{b}:
136          decode_all.fin(Bytes.length(b))
137        case Bad{r}:
138          Fail{r}
139        case Got{env, rest}:
140          decode_all.cons(env, decode_all.go(p, decode(rest, max), max))

Uses (11)

Used by (1)