def chunk_go
mylsm-lsm-store@0.6.0.1 · src/Sstable.bend:32
import mylsm-lsm-store@0.6.0.1/src/Sstable.bend as Sstable
import Base
import mylsm-lsm-store@0.6.0.1/src/MemTable.bend as MemTable
32
33def chunk_go(
34 fuel: Nat,
35 +entries: List<&2, MemTable.Entry>,
36 +cur: List<&2, MemTable.Entry>,
37 room: Nat,
38 acc: List<&2, List<&2, MemTable.Entry>>
39) -> List<&2, List<&2, MemTable.Entry>>:
40 match fuel:
41 case 0n:
42 List.reverse(&2, List<&2, MemTable.Entry>, Con{List.reverse(&2, MemTable.Entry, cur), acc})
43 case 1n+f:
44 match entries:
45 case Nil{}:
46 List.reverse(&2, List<&2, MemTable.Entry>, Con{List.reverse(&2, MemTable.Entry, cur), acc})
47 case Con{e, t}:
48 match room:
49 case 0n:
50 chunk_go(f, t, Con{e, Nil{}}, Nat.sub(block_entries(), 1n), Con{List.reverse(&2, MemTable.Entry, cur), acc})
51 case 1n+r:
52 chunk_go(f, t, Con{e, cur}, r, acc)