def scan_handles
bendvy-ecs-core@0.1.0.4 · query_contract.bend:38
import bendvy-ecs-core@0.1.0.4/query_contract.bend as QueryContract
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import compose.bend as Q
import world.bend as W
import transaction.bend as T
38def scan_handles(~S: Data,~Store: Type,~R: Type,~E: Data,~Ops: Type -> Type,~plan: Q.Plan<S,Store,R,E,Ops>,handles: List<&2,W.Handle<S>>,+cursor:Maybe<&2,Tick.Tick>,world: W.World<S,Store,R,E>) -> Scanned<S,Store,R,E>:
39 match handles:
40 case []: Scanned{world,[]}
41 case +handle <> rest: scanned_join(~S,~Store,~R,~E,~Ops,~plan,cursor,handle,(world => scan_handles(~S,~Store,~R,~E,~Ops,~plan,rest,cursor,world)),unselect(~S,~Store,~R,~E,Q.plan_select(~S,~Store,~R,~E,~Ops,plan)(Q.Frame{T.begin(~W.World<S,Store,R,E>,~E,world),handle,None{},cursor})))