ByteSstIo.validate.page: def of mylsm-lsm-store@0.6.0.1 Import: import mylsm-lsm-store@0.6.0.1/src/ByteSstIo.bend as ByteSstIo Lines 73-89 of mylsm-lsm-store@0.6.0.1/src/ByteSstIo.bend: https://jend.leeeet.dev/read.txt?path=mylsm-lsm-store@0.6.0.1/src/ByteSstIo.bend&start_line=73&end_line=89 import Base import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable import mylsm-lsm-store@0.6.0.1/src/scan/ByteBlockReader.bend as ByteBlockReader import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes def validate.page( entries: List<&1, ByteMemTable.Entry>, metadata: ByteBlockReader.Metadata ) -> ByteBlockReader.Metadata: match entries: case Nil{}: metadata case Con{ByteMemTable.Entry{Bytes.Bytes{+key_len, _}, val}, tail}: match val: case None{}: validate.page(tail, metadata) case Some{Bytes.Bytes{+value_len, _}}: match metadata: case ByteBlockReader.Metadata{size, total, block_count, index_offset, live_entries, payload_bytes}: validate.page(tail, ByteBlockReader.Metadata{size, total, block_count, index_offset, Nat.add(live_entries, 1n), Nat.add(payload_bytes, Nat.add(U32.to_nat(key_len), U32.to_nat(value_len)))}) Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Maybe https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat.add https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.to_nat https://jend.leeeet.dev/definition.txt?path=bend-kit-bytes@0.3.3.0/bytes.bend&name=Bytes https://jend.leeeet.dev/definition.txt?path=mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend&name=Entry https://jend.leeeet.dev/definition.txt?path=mylsm-lsm-store@0.6.0.1/src/scan/ByteBlockReader.bend&name=Metadata