def read.size.checked

mylsm-lsm-store@0.6.0.1 · src/transfer/FormatInspectIo.bend:87

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

87def read.size.checked(
88  +path: String,
89  lock: DbLock.Lock,
90  +size: Nat,
91  within_limit: Bool
92) -> IO(Result<&1, &1, Error, FormatInspect.Inspection>):
93  match within_limit:
94    case True{}:
95      do IO<Result<&1, &1, Error, FormatInspect.Inspection>>:
96        opened : Result<&1, &1, U32 & String, File> <-
97          File.open(path ++ "/MANIFEST", "r")
98        read.opened(path, lock, size, opened)
99    case False{}:
100      do IO<Result<&1, &1, Error, FormatInspect.Inspection>>:
101        released : Result<&1, &1, DurableError.Error, Unit> <-
102          DbLock.release(lock, "inspect", path)
103        read.limit.released(released)

Uses (19)

Used by (1)