def reserved

bendvy-ecs-core@0.1.0.4 · recognized_system.bend:42

import bendvy-ecs-core@0.1.0.4/recognized_system.bend as RecognizedSystem
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/recognized_query_declaration.bend as N
import bendvy-ecs-core@0.1.0.4/internal/compact_operational_frame.bend as F
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/world.bend as W

42def reserved(~S:Data,~Store:Type,~R:Type,~E:Data,~Ops:Type -> Type,~A:Data,~U:Data,~Out:Data,~query:N.Declaration<S,Store,R,E,Ops>,~body:@-H:Type -> @-caps:Ops(H) -> A -> H -> H & (T.Outcome<U> & Out),+args:A,cursor:Maybe<&2,Tick.Tick>,observed:W.World<S,Store,R,E> & List<&2,W.Handle<S>>) -> Q.Executed<W.World<S,Store,R,E>,Q.Error<U>,Out>:
43  match observed:
44    case (world,[]):Q.finished(~S,~Store,~R,~E,~U,~Out,(T.begin(~W.World<S,Store,R,E>,~E,world),(T.Success{},[])))
45    case (world,+handle <> rest):finished(~S,~Store,~R,~E,~U,~Out,run_handles(~S,~Store,~R,~E,~Ops,~A,~U,~Out,~query,~body,rest,args,[],selected(~S,~Store,~R,~E,~Ops,~A,~U,~Out,~query,~body,args,N.selector(~S,~Store,~R,~E,~Ops,query)(F.extract(~S,~Store,~R,~E,Q.Frame{T.begin(~W.World<S,Store,R,E>,~E,world),handle,None{},cursor})))))

Uses (19)

Used by (1)