def parse.multi.block.count
import mylsm-lsm-store@0.6.0.1/src/ByteSstFile.bend as ByteSstFileimport 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
1721def parse.multi.block.count(
1722 pair: Bytes.Bytes & Maybe<&2, U32>,
1723 file: Bytes.Bytes,
1724 index_offset: Nat,
1725 next_block: Nat,
1726 block_count: Nat,
1727 level: U32,
1728 total: Nat,
1729 decoded: Nat,
1730 table: ByteMemTable.Table,
1731 payload_length: U32
1732) -> Result<&1, &1, Error, MultiRead>:
1733 match pair:
1734 case (block, Some{record_count}):
1735 +payload_nat = U32.to_nat(payload_length)
1736 +record_nat = U32.to_nat(record_count)
1737 parse.multi.block.frame(Bytes.slice(block, 8, U32.from_nat(payload_nat)),
1738 file, index_offset, next_block, block_count, level, total, decoded,
1739 table, record_nat)
1740 case _:
1741 Fail{Malformed{}}