def wal.locked.opened
mylsm-lsm-store@0.6.0.1 · src/transfer/MigrateIo.bend:753
import mylsm-lsm-store@0.6.0.1/src/transfer/MigrateIo.bend as MigrateIo
import Base
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock
import mylsm-lsm-store@0.6.0.1/src/Fs.bend as Fs
import mylsm-lsm-store@0.6.0.1/src/MemTable.bend as MemTable
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes
753def wal.locked.opened(
754 lock: DbLock.Lock,
755 sizes: Nat & Nat,
756 opened: Result<&1, &1, U32 & String, File>,
757 path: String,
758 records: List<&2, MemTable.Entry>
759) -> IO(TableValidation):
760 match sizes opened:
761 case (read_size, retained_size) Fail{(code, message)}:
762 IO.pure(TableValidation,
763 table.validation.records(lock, path, Fail{HostError{code, message}}, records))
764 case (read_size, retained_size) Done{file}:
765 do IO<TableValidation>:
766 read : File & Result<&1, &1, U32 & String, Bytes.Bytes> <-
767 Fs.read_at(file, 0, U32.from_nat(read_size))
768 wal.locked.read.pair(read, lock, path, retained_size, records)