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))

Uses (7)

Used by (1)