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)

Uses (20)

Used by (1)