def parse.block.length
mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:1283
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 mylsm-lsm-store@0.6.0.1/src/coordinator/QueuePolicy.bend as QueuePolicy
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
1283def parse.block.length(
1284 measured: Bytes.Bytes & U32,
1285 payload: Bytes.Bytes & Maybe<&2, U32>
1286) -> Result<&1, &1, Error, ByteMemTable.Table>:
1287 match measured:
1288 case (block, +size):
1289 match payload:
1290 case (_, Some{payload_length}):
1291 parse.block.length.check(block, size,
1292 QueuePolicy.nat.clone.pair(U32.to_nat(payload_length)))
1293 case _:
1294 Fail{Malformed{}}