def selected
bendvy-ecs-core@0.1.0.4 · captured_schedule_query.bend:24
import bendvy-ecs-core@0.1.0.4/captured_schedule_query.bend as CapturedScheduleQuery
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as Decl
import bendvy-ecs-core@0.1.0.4/ordinary_capture_query.bend as O
import bendvy-ecs-core@0.1.0.4/captured_schedule_composition.bend as Comp
24def selected(~S:Data,~C:Type,~R:Type,~E:Data,~L:Type,~Ops:Type -> Type,~A:Data,~U:Data,~Out:Data,~query:Decl.Declaration<S,Q.Frame<S,C,R,E>,Ops(Q.Frame<S,C,R,E>)>,~body:@-H:Type -> @-caps:Ops(H) -> L -> A -> H -> H & (L & (T.Outcome<U> & Out)),allowed:Bool,leaf:Leaf<S,C,R,E,L,Ops,A,U,Out,query,body>,world:W.World<S,C,R,E>) -> Comp.Outcome<W.World<S,C,R,E>,Leaf<S,C,R,E,L,Ops,A,U,Out,query,body>,Q.Error<U>>:
25 match allowed leaf:
26 case False{}, leaf:Comp.Refused{world,leaf}
27 case True{}, Leaf{owner,args,False{}}:skipped(~S,~C,~R,~E,~L,~Ops,~A,~U,~Out,~query,~body,args,O.skip(~S,~C,~R,~E,~L,~Ops,~A,~U,~Out,~query,~body,owner,world))
28 case True{}, Leaf{owner,+args,True{}}:returned(~S,~C,~R,~E,~L,~Ops,~A,~U,~Out,~query,~body,args,True{},O.run(~S,~C,~R,~E,~L,~Ops,~A,~U,~Out,~query,~body,owner,world,args))