def snap.brk

bend-kit-runner@0.13.0.1 · runner.bend:498

import bend-kit-runner@0.13.0.1/runner.bend as Runner
import Base
import bend-kit-bytes@0.3.3.0/bytes.bend as Bytes
import bend-kit-retry@0.3.0.0/retry.bend as Retry

498# A breaker state is a u32 kind. 0 is closed: a u32 count, then each failure as a u64. 1 is open: until. 2 is half-open: busy.
499def snap.brk(out: Bytes.Bytes, b: Retry.State) -> Bytes.Bytes:
500  match b:
501    case Retry.CircuitClosed{+fs}:
502      snap.nats(fs, snap.u32(snap.u32(out, 0), U32.from_nat(List.length(&2, Nat, fs))))
503    case Retry.CircuitOpen{u}:
504      snap.u64(snap.u32(out, 1), u)
505    case Retry.CircuitHalf{k}:
506      snap.u64(snap.u32(out, 2), k)

Uses (8)

Used by (2)