def drain_go

bend-collections@1.0.0.0 · src/containers/binary_heap.bend:358

import bend-collections@1.0.0.0/src/containers/binary_heap.bend as BinaryHeap
import Base

358def drain_go(~A: Data, ~cmp: A -> A -> Cmp, fuel: Nat, +depth: Nat, st: Drain<A>) -> List<&2, A>:
359  match fuel st:
360    case _ DrDone{arr}:
361      burn(~A, arr)
362    case _ DrLast{arr, root}:
363      burn_cons(~A, root, arr)
364    case 0n DrMore{arr, root, m, last}:
365      burn_cons(~A, root, arr)
366    case 1n+f DrMore{arr, root, +m, last}:
367      Con{root, drain_go(~A, ~cmp, f, depth, drain_probe(~A, m, sift_down(~A, ~cmp, depth, m, 0, last, arr)))}

Uses (8)

Used by (1)