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