def State.admit
import bend-kit-retry@0.3.0.0/retry.bend as Retryimport Base
102# Closed admits. Open admits nothing before until; at or after until it turns half-open and admits a probe.
103# Half-open admits while fewer than probes are in flight.
104def State.admit(+c: Circuit, s: State, +now: Nat) -> State & Bool:
105 match s:
106 case CircuitClosed{fs}:
107 (CircuitClosed{fs}, True{})
108 case CircuitOpen{+u}:
109 open.admit(Nat.is_lt(now, u), Circuit.probes(c), u)
110 case CircuitHalf{+k}:
111 half.admit(Nat.is_lt(k, Circuit.probes(c)), k)