def decode.go
bend-kit-http2@0.4.0.0 · hpack.bend:489
import bend-kit-http2@0.4.0.0/hpack.bend as Hpack
import Base
489def decode.go(fuel: Nat, ended: Bool, c: Cursor, st: State, acc: List<&2, Field>, +seen: Bool) -> Maybe<&1, State & List<&2, Field>>:
490 match fuel ended:
491 case 0n False{}:
492 None{}
493 case 0n True{}:
494 Some{(st, List.reverse(&2, Field, acc))}
495 case 1n+p True{}:
496 Some{(st, List.reverse(&2, Field, acc))}
497 case 1n+p False{}:
498 Maybe.bind(&1, Step, State & List<&2, Field>, decode.one(c, st, seen), step =>
499 with_step(Maybe<&1, State & List<&2, Field>>, step, state => cursor => field =>
500 with_end(Maybe<&1, State & List<&2, Field>>, cursor, cursor => ended =>
501 with_fields(Maybe<&1, State & List<&2, Field>>, decode.add(field, acc, seen), fields => was_field =>
502 decode.go(p, ended, cursor, state, fields, was_field)))))