def register_writer

bendvy-ecs-core@0.1.0.4 · ordinary_app_event_runtime.bend:87

import bendvy-ecs-core@0.1.0.4/ordinary_app_event_runtime.bend as OrdinaryAppEventRuntime
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
import bendvy-ecs-core@0.1.0.4/ordinary_app_registration_fields.bend as Records
import bendvy-ecs-core@0.1.0.4/ordinary_app_observation_data.bend as DTO
import bendvy-ecs-core@0.1.0.4/ordinary_app_access.bend as Access
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/ordinary_event_declaration.bend as Event
import bendvy-ecs-core@0.1.0.4/ordinary_app_event.bend as EventOwner

87# Register a declared writer and append its actual owner on success. failed gets
88# the prior App shape with returned Runtime; done gets extended event owners.
89# No writer body runs. World registration adapter synchronizes through Ev.with_world.
90def register_writer(~S:Data,~C:Type,~R:Type,~E:Data,~H:Type,~Rows:Data,~observe:W.World<S,C,R,E> -> W.World<S,C,R,E> & DTO.Observation<Rows>,~fold:H -> H & List<&2,Records.Fields<S>>,~Events:Type,~eventFold:Events -> Events & List<&2,Access.Entry>,~A:Type,~Error:Data,~O:Type,~runner:W.World<S,C,R,E> -> A -> Sys.Outcome<W.World<S,C,R,E>,Error,O>,~Result:Type,done:Application<S,C,R,E,H,Rows,observe,fold,Events & EventOwner.Owner<S,E,Sys.Registry<S,C,R,E,A,Error,O,runner>>,pair(~Events,~EventOwner.Owner<S,E,Sys.Registry<S,C,R,E,A,Error,O,runner>>,~eventFold,~writer_entry(~S,~C,~R,~E,~A,~Error,~O,~runner))> -> Result,failed:Application<S,C,R,E,H,Rows,observe,fold,Events,eventFold> -> Result,app:Application<S,C,R,E,H,Rows,observe,fold,Events,eventFold>,declaration:Event.Declaration<S,E>,name:String) -> Result:
91  match app:
92    case Application{schema,runtime,owners,recipe,events,debug}:writer_appended(~S,~C,~R,~E,~H,~Rows,~observe,~fold,~Events,~eventFold,~A,~Error,~O,~runner,~Result,done,failed,schema,owners,recipe,events,debug,Ev.with_world(~S,~C,~R,~E,~Maybe<EventOwner.Owner<S,E,Sys.Registry<S,C,R,E,A,Error,O,runner>>>,world => writer_registered_world(~S,~C,~R,~E,~A,~Error,~O,~runner,EventOwner.register_writer(~S,~C,~R,~E,~A,~Error,~O,~runner,world,declaration,name)),runtime))

Uses (19)

Used by (0)

No other definition uses this definition.