def recover.size.checked
mylsm-lsm-store@0.6.0.1 · src/ByteWalIo.bend:399
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
399def recover.size.checked(
400 +path: String,
401 +size: Nat,
402 valid: Bool,
403 initial: ByteMemTable.Table
404) -> IO(Result<&1, &1, U32 & String, ByteMemTable.Table>):
405 match valid:
406 case False{}:
407 IO.pure(Result<&1, &1, U32 & String, ByteMemTable.Table>,
408 Fail{error("malformed or oversized byte WAL")})
409 case True{}:
410 do IO<Result<&1, &1, U32 & String, ByteMemTable.Table>>:
411 opened : Result<&1, &1, U32 & String, File> <- File.open(path, "r")
412 recover.opened(path, size, opened, initial)