def prepare_event

bendvy-ecs-core@0.1.0.4 · ordinary_reader_stream_parameter.bend:188

import bendvy-ecs-core@0.1.0.4/ordinary_reader_stream_parameter.bend as OrdinaryReaderStreamParameter
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/event_stream.bend as Stream
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route
import bendvy-ecs-core@0.1.0.4/event_notice_runtime.bend as Mixed
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as Notice
import bendvy-ecs-core@0.1.0.4/ordinary_event_declaration.bend as Event

188def prepare_event(~S:Data,~C:Type,~R:Type,~P:Data,~E:Data,~F:Type,~H:Type,
189  ~take:F -> F & Stream.Stream<S,E>,
190  ~put:F -> Stream.Stream<S,E> -> F,
191  ~declaration:Event.Declaration<S,E>,
192  context:Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>>,+cursor:Maybe<&2,Tick.Tick>,
193  owner:EventOwner<S,C,R,P,E,F,H,take,put>) -> Route.Runtime<S,C,R,Notice.Notice<S,P>,Mixed.State<S,P,F,H>> & (EventOwner<S,C,R,P,E,F,H,take,put> & (EventView<S,E> & Nat)):
194  match context owner:
195    case Route.Runtime{world,state,+tick} EventOwner{facts,reader}:
196      match reader:
197        case Route.Reader{namespace,+id,registryId}:
198          event_prepared(~S,~C,~R,~P,~E,~F,~H,~take,~put,world,tick,EventOwner{facts,Route.Reader{namespace,id,registryId}},
199            event_read_selected(~S,~P,~E,~F,~H,~take,state,id,tick))

Uses (14)

Used by (5)