def partition_go

mylsm-lsm-store@0.3.2.0 · src/SortedRun.bend:355

import mylsm-lsm-store@0.3.2.0/src/SortedRun.bend as SortedRun
import Base
import mylsm-lsm-store@0.3.2.0/src/MemTable.bend as MemTable

355def partition_go(
356  fuel: Nat,
357  +target: Nat,
358  state: PartitionState
359) -> List<&2, List<&2, MemTable.Entry>>:
360  match fuel state:
361    case 0n PartitionState{room, entries, current_rev, chunks_rev}:
362      partition_finish(current_rev, chunks_rev)
363    case 1n+f PartitionState{0n, entries, current_rev, chunks_rev}:
364      partition_finish(current_rev, chunks_rev)
365    case 1n+f PartitionState{1n+r, Nil{}, current_rev, chunks_rev}:
366      partition_finish(current_rev, chunks_rev)
367    case 1n+f PartitionState{1n++r, Con{entry, rest}, current_rev, chunks_rev}:
368      partition_go(f, target, partition_step(Nat.is_eq(r, 0n), target, r, entry, rest, current_rev, chunks_rev))

Uses (7)

Used by (1)