def open.manifest.failed

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:280

import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteManifestIo.bend as ByteManifestIo
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

280def open.manifest.failed(
281  +path: String,
282  lock: DbLock.Lock,
283  error: ByteManifestIo.Error
284) -> IO(Result<&1, &1, Error, Handle>):
285  match error:
286    case ByteManifestIo.Invalid{_}:
287      do IO<Result<&1, &1, Error, Handle>>:
288        _released : Result<&1, &1, DurableError.Error, Unit> <-
289          DbLock.release(lock, "open_existing", path)
290        return Fail{Corruption{"byte manifest validation failed"}}
291    case ByteManifestIo.Host{code, message}:
292      do IO<Result<&1, &1, Error, Handle>>:
293        _released : Result<&1, &1, DurableError.Error, Unit> <-
294          DbLock.release(lock, "open_existing", path)
295        return Fail{Io{code, message}}

Uses (12)

Used by (1)