def records.size.go
mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:346
import mylsm-lsm-store@0.6.0.1/src/ByteSstFile.bend as ByteSstFile
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
346
347def records.size.go(
348 fuel: Nat,
349 entries: List<&1, ByteMemTable.Entry>,
350 total: Nat
351) -> Nat:
352 match fuel:
353 case 0n:
354 total
355 case 1n+rest:
356 match entries:
357 case Nil{}:
358 total
359 case Con{ByteMemTable.Entry{key, value}, tail}:
360 +entry_size = record.size(Bytes.length(key), value)
361 records.size.go(rest, tail, Nat.add(total, entry_size))