ordinary_query_selections.bend

bendvy-ecs-core@0.1.0.0 · 24 lines · 0 definitions

1import Base
2import ordinary_component_binding.bend as B
3import inspector_query_families.bend as F
4import inspector_query_projection.bend as Q
5import column.bend as Col
6import component.bend as C
7import inspector.bend as I
8import check.bend as K
9import compose.bend as P
10# Ordinary lowering uses the retained binding, never a second caller family/name.
11def inspect_slot(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>,~mode:F.SlotMode) -> Q.DeclaredSelection<I.Frame<S,Store,R,E>,S,C.Access<V>>:
12  F.inspect_slot(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding),~mode)
13def inspect_with(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>) -> Q.Predicate<I.Frame<S,Store,R,E>,S>:
14  F.inspect_with(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding))
15def inspect_without(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>) -> Q.Predicate<I.Frame<S,Store,R,E>,S>:
16  F.inspect_without(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding))
17def inspect_filter(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>,~mode:P.LifecycleSelection) -> Q.Predicate<I.Frame<S,Store,R,E>,S>:
18  F.inspect_filter(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding),~mode)
19def check_slot(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>,~mode:F.SlotMode) -> Q.DeclaredSelection<K.Frame<S,Store,R,E>,S,C.Access<V>>:
20  F.check_slot(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding),~mode)
21def check_with(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>) -> Q.Predicate<K.Frame<S,Store,R,E>,S>:
22  F.check_with(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding))
23def check_without(~S:Data,~Store:Type,~R:Type,~E:Data,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~project:Payload -> Payload & V,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,project>) -> Q.Predicate<K.Frame<S,Store,R,E>,S>:
24  F.check_without(~S,~Store,~R,~E,~Rest,~Payload,~V,~Token,~take,~put,~project,~B.family(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~project,binding))