def observe

bendvy-ecs-core@0.1.0.4 · ordinary_app_relation.bend:81

import bendvy-ecs-core@0.1.0.4/ordinary_app_relation.bend as OrdinaryAppRelation
import Base
import bendvy-ecs-core@0.1.0.4/ordinary_app_observation_data.bend as DTO
import bendvy-ecs-core@0.1.0.4/inspector.bend as I
import bendvy-ecs-core@0.1.0.4/relation_failure_reader.bend as Ord
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as A
import bendvy-ecs-core@0.1.0.4/relation_query.bend as RQ
import bendvy-ecs-core@0.1.0.4/inspector_relation_projection.bend as IR
import bendvy-ecs-core@0.1.0.4/inspector_query.bend as IQ
import bendvy-ecs-core@0.1.0.4/inspector_query_projection.bend as Select

81# Read a fresh relation inspector view while returning the World owner.
82# Uses a fresh inspector cursor; it does not advance a registered gameplay reader
83# or apply queued commands. The renderer consumes detached rows only.
84def observe(~S:Data,~C:Type,~R:Type,~E:Data,~declaration:Ord.Declaration<S>,~render:Row(~S) -> String,world:World(~S,~C,~R,~E)) -> World(~S,~C,~R,~E) & DTO.Observation<View<S>>:
85  presented(~S,~C,~R,~E,~declaration,~render,IQ.each_composed(~I.Frame<S,A.Store<S,C>,R,A.Notice<S,E>>,~S,~Select.Product<Unit,List<&2,RQ.Cell<S>>>,~IR.grant(~S,~C,~R,~E,~Unit,~Select.empty(~I.Frame<S,A.Store<S,C>,R,A.Notice<S,E>>,~S),~spec(~S,declaration)),I.Frame{world,None{}}))

Uses (20)

Used by (14)