def Bytes.endpoint.checked
mylsm-lsm-store@0.6.0.1 · mylsm.bend:296
import mylsm-lsm-store@0.6.0.1/mylsm.bend as Mylsm
import Base
import mylsm-lsm-store@0.6.0.1/src/coordinator/OwnerGenerationIo.bend as OwnerGenerationIo
import mylsm-lsm-store@0.6.0.1/src/coordinator/CoordinatorPolicy.bend as OwnerPolicy
296def Bytes.endpoint.checked(
297 canonical: String,
298 endpoint: String,
299 exists: Result<&1, &1, U32 & String, Bool>
300) -> IO(Result<&1, &1, Bytes.Error, Bytes.Handle>):
301 match exists:
302 case Fail{(code, message)}:
303 IO.pure(Result<&1, &1, Bytes.Error, Bytes.Handle>,
304 Fail{Io{code, message}})
305 case Done{True{}}:
306 do IO<Result<&1, &1, Bytes.Error, Bytes.Handle>>:
307 generation : Result<&1, &1, OwnerGenerationIo.Error, U32> <-
308 OwnerGenerationIo.read(canonical ++ "/OWNER.GEN")
309 Bytes.endpoint.generation(endpoint, generation)
310 case Done{False{}}:
311 Bytes.remote.role(endpoint, 0, OwnerPolicy.open.role(
312 OwnerPolicy.LockBusy{}, OwnerPolicy.EndpointMissing{}))