def session.call.decision

mylsm-lsm-store@0.6.0.1 · src/coordinator/Client.bend:408

import mylsm-lsm-store@0.6.0.1/src/coordinator/Client.bend as Client
import Base
import mylsm-lsm-store@0.6.0.1/src/coordinator/ClientPolicy.bend as Policy
import mylsm-lsm-store@0.6.0.1/src/coordinator/Protocol.bend as Protocol
import bend-kit-bytes@0.3.2.0/bytes.bend as Bytes

408def session.call.decision(
409  endpoint: String,
410  generation: U32,
411  operation: U32,
412  payload: Bytes.Bytes,
413  decision: Policy.RequestDecision
414) -> IO(Session & Result<&1, &1, Error, Protocol.Response>):
415  match decision:
416    case Policy.RequestAssigned{id, next}:
417      session.call.ready(string.clone.pair(endpoint),
418        Protocol.u32.duplicate.triple(generation), id, operation, next, payload)
419    case Policy.RequestIdsExhausted{}:
420      IO.pure(Session & Result<&1, &1, Error, Protocol.Response>,
421        (Session{endpoint, generation, Policy.RequestExhausted{}},
422          Fail{RequestIdsExhausted{}}))

Uses (16)

Used by (1)