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)