def read_app

bendvy-ecs-core@0.1.0.4 · ordinary_app_stream.bend:48

import bendvy-ecs-core@0.1.0.4/ordinary_app_stream.bend as OrdinaryAppStream
import Base
import bendvy-ecs-core@0.1.0.4/capabilities.bend as Cap
import bendvy-ecs-core@0.1.0.4/inspector_stream_frame.bend as F
import bendvy-ecs-core@0.1.0.4/inspector_transition_projection.bend as T
import bendvy-ecs-core@0.1.0.4/inspector_failure_projection.bend as Fail
import bendvy-ecs-core@0.1.0.4/machine_stream.bend as St

48# Read transition projection then selected relation failures through confined
49# inspector grants, returning actual runtime/owners and detached Values. This entry
50# is explicit reading regardless of debug flag; it preserves the supplied cursor
51# and does not advance/acknowledge event readers or change retention boundaries.
52# The transition resource projector must return its actual resource owner.
53def read_app(~S:Data,~K:Data,~V:Data,~C:Type,~R:Type,~E:Data,~H:Type,~take:R -> R & St.Stream<V>,~transition:T.Declaration<S,K,V,R,take>,~failure:Fail.Declaration<S>,app:Application<S,K,V,C,R,E,H,take,transition,failure>) -> Application<S,K,V,C,R,E,H,take,transition,failure> & Values<S,K,V,E>:
54  match app:
55    case Application{runtime,owners,cursor,debug}:read_finished(~S,~K,~V,~C,~R,~E,~H,~take,~transition,~failure,owners,debug,Cap.invoke(~(Owner => Cap.ValueRead<Owner,T.TransitionLog<S,K,V>> & Cap.ValueRead<Owner,Fail.FailureView<S,E>>),~Unit,~Values<S,K,V,E>,~selected(~S,~K,~V,~E),~F.Frame<S,C,R,E>,~(T.inspect(~S,~K,~V,~C,~R,~E,~take,~transition),Fail.inspect(~S,~C,~R,~E,~failure)),Unit{},F.Frame{runtime,cursor}))

Uses (17)

Used by (1)