def parse.block.count
mylsm-lsm-store@0.6.0.1 · src/SstFile.bend:995
import mylsm-lsm-store@0.6.0.1/src/SstFile.bend as SstFile
import Base
import mylsm-lsm-store@0.6.0.1/src/StorageBytes.bend as StorageBytes
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
995def parse.block.count(
996 pair: Bytes.Cursor & Maybe<&2, U32>,
997 +payload_len: U32,
998 previous: Maybe<&2, String>
999) -> Bytes.Cursor & Result<&1, &1, Error, ParsedBlock>:
1000 match pair:
1001 case (cursor, Some{+count}):
1002 parse.block.count.valid(cursor, payload_len, count, previous,
1003 U32.is_lt(0, count) && (U32.is_le(payload_len, StorageBytes.MAX_BLOCK_BYTES()) ||
1004 U32.is_eq(count, 1) && U32.is_le(payload_len, StorageBytes.MAX_RECORD_BYTES())))
1005 case (cursor, None{}):
1006 (cursor, Fail{Malformed{}})