def rd.state
bend-kit-runner@0.13.0.1 · runner.bend:887
import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import bend-kit-scheduler@0.4.1.0/queue.bend as Q
import bend-kit-retry@0.3.0.0/retry.bend as Retry
import bend-kit-collections@0.1.4.1/heap.bend as H
import bend-kit-collections@0.1.4.1/omap.bend as O
import bend-kit-collections@0.1.4.1/LAWS.bend as CL
887def rd.state(~A: Data, ~pdec: Bytes.Bytes -> Maybe<&2, A>, +fuel: Nat) -> Dec(State<A>):
888 do Dec<State<A>>:
889 n : Nat <- rd.u64()
890 hf : Bool <- rd.flag()
891 h : H.Heap<Q.Ticket<A>> <- rd.heap(~A, ~pdec, fuel, hf)
892 rf : Bool <- rd.flag()
893 run : List<&2, Q.Ticket<A>> <- rd.run(~A, ~pdec, fuel, rf)
894 tf : Bool <- rd.flag()
895 ts : O.OMap<Nat, Try> <- rd.tries(fuel, tf)
896 +dk : U32 <- rd.u32()
897 +dt : Graves(A) <- rd.graves(~A, ~pdec, fuel, U32.is_eq(dk, 0), U32.is_eq(dk, 1), U32.is_eq(dk, 2))
898 ds : Graves(A) <- rd.wf(A, CL.hmap_wf(~Nat, ~Dead<A>, ~dead.hash, ~Nat.is_eq, dt), dt)
899 bf : Bool <- rd.flag()
900 bs : Map<&2, Retry.State> <- rd.brks(fuel, bf, Map.new(&2, Retry.State))
901 return State{Q.State{n, h, run}, ts, ds, bs}