OrdinaryQueryDeclaration.constructed_optional: def of bendvy-ecs-core@0.1.0.4 Import: import bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend as OrdinaryQueryDeclaration Lines 58-63 of bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend: https://jend.leeeet.dev/read.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend&start_line=58&end_line=63 import Base import bendvy-ecs-core@0.1.0.4/persistence_declaration.bend as Recipe import bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend as Identity import bendvy-ecs-core@0.1.0.4/declared_family.bend as Family import bendvy-ecs-core@0.1.0.4/snapshot_leaf.bend as Leaf import bendvy-ecs-core@0.1.0.4/decode_data.bend as D import bendvy-ecs-core@0.1.0.4/compose.bend as Q import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap # Constructed-component counterpart of optional, using the declaration-bound save recipe. # take/put must preserve the matching Leaf.Component and all remaining storage. # Allows absence; reads return Found, ComponentAbsent or MissingEntity. # Stale/foreign handles yield MissingEntity, never an optional matching row. def constructed_optional(~S:Data,~P:Type,~Store:Type,~R:Type,~E:Data,~Rest:Type,~V:Data,~Token:Data,~identity:Identity.Declaration,~save:P -> P & D.Raw,~view:P -> P & V,~take:Store -> Rest & Leaf.Component,~put:Rest -> Leaf.Component -> Store) -> Declaration,Cap.Read,V>>: Declaration{Q.read_family(~S,~Store,~R,~E,~(Rest & Recipe.Constructed),~P,~V,~Token,~Family.take_column(~S,~P,~Store,~Rest,~identity,~save,~take),~Family.put_column(~S,~P,~Store,~Rest,~identity,~save,~put),~view,~Family.family(~S,~P,~Store,~Rest,~V,~Token,~identity,~save,~view,~take,~put)),Q.family_match(~S,~Store,~R,~E,~(Rest & Recipe.Constructed),~P,~V,~Token,~Family.take_column(~S,~P,~Store,~Rest,~identity,~save,~take),~Family.put_column(~S,~P,~Store,~Rest,~identity,~save,~put),~view,~Family.family(~S,~P,~Store,~Rest,~V,~Token,~identity,~save,~view,~take,~put),~Q.Optional{}),[Clause{Identity.key(~S,~P,identity),Optional{}}]} Uses (18): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/capabilities.bend&name=Read https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/compose.bend&name=Frame https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/compose.bend&name=Selection https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/compose.bend&name=family_match https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/compose.bend&name=read_family https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/declared_family.bend&name=family https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/declared_family.bend&name=put_column https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/declared_family.bend&name=take_column https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/decode_data.bend&name=Raw https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend&name=Declaration https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_declaration.bend&name=key https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend&name=Clause https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend&name=Declaration https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/ordinary_query_declaration.bend&name=Mode https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/persistence_declaration.bend&name=Constructed https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/snapshot_leaf.bend&name=Component