def read
import bendvy-ecs-core@0.1.0.4/ordinary_inspector_declaration.bend as OrdinaryInspectorDeclarationimport Base
import bendvy-ecs-core@0.1.0.4/ordinary_component_binding.bend as B
import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Identity
import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as D
import bendvy-ecs-core@0.1.0.4/inspector.bend as I
import bendvy-ecs-core@0.1.0.4/inspector_query.bend as Q
import bendvy-ecs-core@0.1.0.4/inspector_query_projection.bend as Projection
import bendvy-ecs-core@0.1.0.4/column.bend as Col
25# Build required component inspection from its operational binding.
26# Derives read grant and clauses together; view preserves P while exposing V.
27def read(~S:Data,~Store:Type,~Rest:Type,~P:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,P>,~put:Rest -> Col.Column<S,P> -> Store,~view:P -> P & V,~R:Type,~E:Data,~binding:B.Binding<S,Store,Rest,P,V,Token,take,put,view>) -> Declaration<S,I.Frame<S,Store,R,E>,V>:
28 Declaration{Q.grant(~S,~Store,~R,~E,~Rest,~P,~V,~Token,~take,~put,~view,~B.family(~S,~Store,~Rest,~P,~V,~Token,~take,~put,~view,binding),~Projection.Required{}),[D.Clause{Identity.key(~S,~P,B.identity(~S,~Store,~Rest,~P,~V,~Token,~take,~put,~view,binding)),D.Read{}}]}
Uses (13)
Used by (0)
No other definition uses this definition.