def parse.header.entries
mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:914
import mylsm-lsm-store@0.6.0.1/src/ByteSstFile.bend as ByteSstFile
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
914def parse.header.entries(
915 pair: Bytes.Cursor & Maybe<&2, U32>,
916 +size: U32,
917 +level: U32,
918 +total: U32,
919 +payload_len: U32
920) -> Result<&1, &1, Error, PayloadWords>:
921 match pair:
922 case (cursor, Some{+entries}):
923 parse.header.entries.valid(cursor, size, level, total, payload_len,
924 entries, U32.is_eq(entries, total) &&
925 U32.is_le(payload_len, StorageBytes.MAX_BLOCK_BYTES()) &&
926 U32.is_eq(size, (116 + payload_len : U32)))
927 case _:
928 Fail{Malformed{}}