def selected

bendvy-ecs-core@0.1.0.4 · capture_query.bend:22

import bendvy-ecs-core@0.1.0.4/capture_query.bend as CaptureQuery
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/transaction.bend as T

22def selected(~S:Data,~C:Type,~R:Type,~E:Data,~L:Type,~U:Data,~Out:Data,~Ops:Type -> Type,~A:Data,~plan:Q.Plan<S,C,R,E,Ops>,~body:@-H:Type -> @-caps:Ops(H) -> L -> A -> H -> H & (L & (T.Outcome<U> & Out)),args:A,capture:L,next:L -> T.Tx<W.World<S,C,R,E>,E> -> L & (T.Tx<W.World<S,C,R,E>,E> & (T.Outcome<Q.Error<U>> & List<&2,Out>)),observed:Q.Frame<S,C,R,E> & Bool) -> L & (T.Tx<W.World<S,C,R,E>,E> & (T.Outcome<Q.Error<U>> & List<&2,Out>)):
23  match observed:
24    case (Q.Frame{tx,_,_,_},False{}):next(capture,tx)
25    case (frame,True{}):body_returned(~S,~C,~R,~E,~L,~U,~Out,next,body(Q.Frame<S,C,R,E>,Q.plan_caps(~S,~C,~R,~E,~Ops,plan),capture,args,frame))

Uses (12)

Used by (1)