def register_reader

bendvy-ecs-core@0.1.0.4 · ordinary_event_declaration.bend:53

import bendvy-ecs-core@0.1.0.4/ordinary_event_declaration.bend as OrdinaryEventDeclaration
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/system.bend as Sys
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev

53# Register a reader with declaration-derived access metadata and an independent
54# stream cursor. A Write declaration returns RegisterFailed with runtime retained;
55# ordinary registration refusal also retains runtime. Success returns runtime,
56# reader and registry owners; no body executes while registering.
57def register_reader(~S:Data,~C:Type,~R:Type,~E:Data,~A:Type,~Error:Data,~O:Type,~runner:W.World<S,C,R,E> -> Ev.Input<E,A> -> Sys.Outcome<W.World<S,C,R,E>,Error,O>,runtime:Ev.Runtime<S,C,R,E>,+declaration:Declaration<S,E>,name:String) -> Ev.Registered<S,C,R,E,A,Error,O,runner>:
58  match declaration:
59    case Declaration{_,Write{}}:Ev.RegisterFailed{runtime}
60    case Declaration{+domain,Read{}}:Ev.register(~S,~C,~R,~E,~A,~Error,~O,~runner,runtime,name,[access(~S,~E,Declaration{domain,Read{}})])

Uses (11)

Used by (1)