def take.keep

bend-kit-scheduler@0.4.1.0 · queue.bend:116

import bend-kit-scheduler@0.4.1.0/queue.bend as Queue
import Base

116# Remove all matching entries and return the first token in one traversal.
117def take.keep(-A: Data, b: Bool, t: Ticket<A>, result: Taken<A>) -> Taken<A>:
118  match b:
119    case True{}:
120      match result:
121        case Taken{rest, found}:
122          Taken{rest, Some{t}}
123    case False{}:
124      match result:
125        case Taken{rest, found}:
126          Taken{t <> rest, found}

Uses (5)

Used by (3)