def compact.sst.loaded
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:976
import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
import mylsm-lsm-store@0.6.0.1/src/ByteSstFile.bend as ByteSstFile
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats
976def compact.sst.loaded(
977 +path: String,
978 lock: DbLock.Lock,
979 table: ByteMemTable.Table,
980 result: Result<&1, &1, U32 & String, ByteMemTable.Table>
981) -> IO(Handle & Result<&1, &1, Error, Unit>):
982 match table:
983 case ByteMemTable.Table{delta}:
984 match result:
985 case Fail{(code, message)}:
986 IO.pure(Handle & Result<&1, &1, Error, Unit>,
987 (Handle{path, lock, ByteMemTable.Table{delta}, Open{}, VisibleStats.Stats{0n, 0n}},
988 Fail{recovery.error(code, message)}))
989 case Done{ByteMemTable.Table{base}}:
990 compact.entries(path, lock,
991 ByteSstFile.entries.clone(ByteMemTable.append(delta, base)))