def outcome.io

bend-kit-hairpin@0.14.0.0 · hairpin.bend:233

import bend-kit-hairpin@0.14.0.0/hairpin.bend as Hairpin
import Base
import bend-kit-time@0.3.0.0/time.bend as Time
import bend-kit-retry@0.3.0.0/retry.bend as Retry

233# The wall clock dates a Retry-After, so it is read only for Again.
234def outcome.io(+idem: Bool, v: Verdict) -> IO(Retry.Outcome):
235  match v:
236    case VerdictAgain{after}:
237      do IO<Retry.Outcome>:
238        wall : Time.Instant <- Time.now()
239        return outcome(idem, VerdictAgain{after}, wall)
240    case VerdictOk{}:
241      IO.pure(Retry.Outcome, Retry.Settled{})
242    case VerdictCaller{}:
243      IO.pure(Retry.Outcome, Retry.Rejected{})
244    case VerdictTarget{}:
245      IO.pure(Retry.Outcome, Retry.Failed{})

Uses (9)

Used by (1)