def stream.block.tail.size
mylsm-lsm-store@0.6.0.1 · src/SstFile.bend:1536
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
1536def stream.block.tail.size(
1537 pair: Bytes.Cursor & Maybe<&2, U32>,
1538 +payload_len: U32
1539) -> Maybe<&2, U32>:
1540 match pair:
1541 case (_, Some{+count}):
1542 Bool.pick(Maybe<&2, U32>,
1543 U32.is_lt(0, count) && (U32.is_le(payload_len, StorageBytes.MAX_BLOCK_BYTES()) ||
1544 U32.is_eq(count, 1) && U32.is_le(payload_len, StorageBytes.MAX_RECORD_BYTES())) &&
1545 U32.is_le(payload_len, (4294967263 : U32)),
1546 Some{(payload_len + 32 : U32)}, None{})
1547 case (_, None{}):
1548 None{}