def ordered.merge.go
mylsm-lsm-store@0.6.0.1 · src/ByteMemTable.bend:630
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import Base
630def ordered.merge.go(fuel: Nat, state: OrderedMergeState) -> List<&1, Entry>:
631 match fuel:
632 case 0n: ordered.merge.finish(state)
633 case 1n+rest:
634 match state:
635 case OrderedMergeState{newer, older, reversed}:
636 match newer older:
637 case Nil{} _: List.reverse.go(&1, Entry, reversed, older)
638 case _ Nil{}: List.reverse.go(&1, Entry, reversed, newer)
639 case Con{newer_head, newer_tail} Con{older_head, older_tail}:
640 ordered.merge.go(rest, ordered.merge.compare(
641 OrderedMergeState{newer_tail, older_tail, reversed},
642 newer_head, older_head))