def drain.ticked
bend-kit-runner@0.13.0.1 · runner.bend:1676
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
1676def drain.ticked(~A: Data, ~penc: A -> Bytes.Bytes, ~target: A -> String, ~work: A -> IO(Retry.Outcome), +idle: U32,
1677 t: Runner<A> & Out(Bool), next: Runner<A> -> IO(Ran(A))) -> IO(Ran(A)):
1678 match t:
1679 case (r, Fail{e}):
1680 IO.pure(Ran(A), (r, Fail{e}))
1681 case (r, Done{True{}}):
1682 next(r)
1683 case (r, Done{False{}}):
1684 drain.wait(~A, ~penc, ~target, ~work, idle, r, next)