def parse.multi.block.count

mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:1721

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

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{}}

Uses (14)

Used by (1)