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

Uses (17)

Used by (1)