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{}))

Uses (19)

Used by (1)