def recover.prefix.next
mylsm-lsm-store@0.6.0.1 · src/ByteWalIo.bend:61
import mylsm-lsm-store@0.6.0.1/src/ByteWalIo.bend as ByteWalIo
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
61def recover.prefix.next(
62 file: File,
63 +size: Nat,
64 +offset: Nat,
65 table: ByteMemTable.Table,
66 prefix: Bytes.Bytes,
67 parsed: Maybe<&2, U32>
68) -> RecoveryState:
69 match parsed:
70 case None{}:
71 Failed{file, error("malformed byte WAL frame length")}
72 case Some{+frame_length}:
73 Prefix{file, size, offset, table, prefix, frame_length,
74 Nat.is_le(Nat.add(offset, Nat.add(4n, U32.to_nat(frame_length))), size) &&
75 U32.is_le(36, frame_length)}