def snap.graves

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

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-collections@0.1.4.1/hmap.bend as M

599def snap.graves(~A: Data, ~penc: A -> Bytes.Bytes, ds: Graves(A), out: Bytes.Bytes) -> Bytes.Bytes:
600  match ds:
601    case M.HNil{}:
602      snap.u32(out, 0)
603    case M.HLeaf{h, es}:
604      snap.entries(~A, ~penc, es, snap.u32(snap.u32(out, 1), h))
605    case M.HBranch{lo, hi}:
606      snap.graves(~A, ~penc, hi, snap.graves(~A, ~penc, lo, snap.u32(out, 2)))

Uses (5)

Used by (1)