def parse.multi.sized.valid
mylsm-lsm-store@0.6.0.1 · src/ByteSstFile.bend:1865
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
1865def parse.multi.sized.valid(
1866 source: Bytes.Bytes,
1867 file: Bytes.Bytes,
1868 +blocks: Nat,
1869 +entries: Nat,
1870 +level: Nat,
1871 +size: Nat,
1872 index_length: Nat,
1873 valid: Bool
1874) -> Result<&1, &1, Error, ByteMemTable.Table>:
1875 match valid:
1876 case False{}: Fail{Malformed{}}
1877 case True{}:
1878 +index_size = Nat.add(44n, index_length)
1879 +index_offset = Nat.sub(size, index_size)
1880 parse.multi.sized.start(QueuePolicy.nat.clone.pair(blocks), source,
1881 file, index_offset, entries, level)