def optional
import bendvy-ecs-core@0.1.0.4/ordinary_query_builder.bend as OrdinaryQueryBuilderimport Base
import bendvy-ecs-core@0.1.0.4/ordinary_query_observable.bend as O
import bendvy-ecs-core@0.1.0.4/ordinary_component_binding.bend as B
import bendvy-ecs-core@0.1.0.4/compose.bend as Q
import bendvy-ecs-core@0.1.0.4/component.bend as C
import bendvy-ecs-core@0.1.0.4/column.bend as Col
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/internal/query_read_session.bend as Session
39# Build an optional read: a missing component does not exclude a live row.
40# Access results retain ComponentAbsent; stale/foreign handles remain
41# MissingEntity. The projection preserves affine Payload while exposing V.
42def optional(~S:Data,~Store:Type,~Rest:Type,~Payload:Type,~V:Data,~Token:Data,~take:Store -> Rest & Col.Column<S,Payload>,~put:Rest -> Col.Column<S,Payload> -> Store,~view:Payload -> Payload & V,~R:Type,~E:Data,~binding:B.Binding<S,Store,Rest,Payload,V,Token,take,put,view>) -> Builder<S,Store,R,E,Q.Frame<S,Store,R,E>,Cap.Read<Q.Frame<S,Store,R,E>,V>,C.Access<V>>:
43 Builder{_=>O.optional(~S,~Store,~Rest,~Payload,~V,~Token,~take,~put,~view,~R,~E,~binding),_=>Session.slot(~S,~Store,~Rest,~Payload,~V,~take,~put,~view,~Q.Optional{})}
Uses (10)
Used by (0)
No other definition uses this definition.