def chunk_go

mylsm-lsm-store@0.3.2.0 · src/Sstable.bend:29

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

29def chunk_go(fuel: Nat, +entries: List<&2, MemTable.Entry>, +cur: List<&2, MemTable.Entry>, room: Nat, acc: List<&2, List<&2, MemTable.Entry>>) -> List<&2, List<&2, MemTable.Entry>>:
30  match fuel:
31    case 0n:
32      List.reverse(&2, List<&2, MemTable.Entry>, Con{List.reverse(&2, MemTable.Entry, cur), acc})
33    case 1n+f:
34      match entries:
35        case Nil{}:
36          List.reverse(&2, List<&2, MemTable.Entry>, Con{List.reverse(&2, MemTable.Entry, cur), acc})
37        case Con{e, t}:
38          match room:
39            case 0n:
40              chunk_go(f, t, Con{e, Nil{}}, Nat.sub(block_entries(), 1n), Con{List.reverse(&2, MemTable.Entry, cur), acc})
41            case 1n+r:
42              chunk_go(f, t, Con{e, cur}, r, acc)

Uses (6)

Used by (1)