def optional

bendvy-ecs-core@0.1.0.4 · ordinary_inspector_declaration.bend:29

import bendvy-ecs-core@0.1.0.4/ordinary_inspector_declaration.bend as OrdinaryInspectorDeclaration
import 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

29# Build optional component inspection, preserving explicit absence for a
30# live entity. Canonical lookup still rejects stale/foreign handles.
31def optional(~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>:
32  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.Optional{}),[D.Clause{Identity.key(~S,~P,B.identity(~S,~Store,~Rest,~P,~V,~Token,~take,~put,~view,binding)),D.Optional{}}]}

Uses (13)

Used by (0)

No other definition uses this definition.