def recovered
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:241
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/DbLock.bend as DbLock
import mylsm-lsm-store@0.6.0.1/src/DurableError.bend as DurableError
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats
241
242def recovered(
243 +path: String,
244 lock: DbLock.Lock,
245 base_stats: VisibleStats.Stats,
246 result: Result<&1, &1, U32 & String, ByteMemTable.Table>
247) -> IO(Result<&1, &1, Error, Handle>):
248 match result:
249 case Fail{(code, message)}:
250 do IO<Result<&1, &1, Error, Handle>>:
251 _released : Result<&1, &1, DurableError.Error, Unit> <-
252 DbLock.release(lock, "open_existing", path)
253 return Fail{recovery.error(code, message)}
254 case Done{table}:
255 IO.pure(Result<&1, &1, Error, Handle>,
256 Done{Handle{path, lock, table, Open{}, base_stats}})