def runner

bendvy-ecs-core@0.1.0.4 · ordinary_owned_event_family_publisher.bend:22

import bendvy-ecs-core@0.1.0.4/ordinary_owned_event_family_publisher.bend as OrdinaryOwnedEventFamilyPublisher
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/transaction.bend as T
import bendvy-ecs-core@0.1.0.4/owned_event_journal.bend as Journal
import bendvy-ecs-core@0.1.0.4/ordinary_owned_event_declaration.bend as D

22# Advanced standalone staged publisher: invokes the opaque body once even
23# with no entities. Success commits staged log owners; failure returns typed
24# recovery for staged publication. No payload copying or arbitrary host-effect
25# rollback is provided. Use define/run for registration validation.
26def runner(~S:Data,~C:Type,~R:Type,~E:Data,~Recovery:Type,~Ops:Type -> Type,~builder:D.Builder(~W.World<S,C,R,E>,~Recovery,~Ops),~declaration:D.Declaration<S,W.World<S,C,R,E>,Recovery,Ops,builder>,~Args:Type,~Error:Data,~Out:Type,~body:@-J:Type -> @-caps:Ops(J) -> Args -> J -> J & (T.Outcome<Error> & Out),world:W.World<S,C,R,E>,args:Args) -> Sys.Outcome<W.World<S,C,R,E>,Unit,Reply<Error,Out,Recovery>>:
27  returned(~S,~C,~R,~E,~Recovery,~Error,~Out,world,D.empty(~S,~W.World<S,C,R,E>,~Recovery,~Ops,~builder,declaration)(Unit{}),body(Journal.Stage<W.World<S,C,R,E>,Recovery>,D.root_grant(~S,~W.World<S,C,R,E>,~Recovery,~Ops,~builder),args,Journal.empty(~W.World<S,C,R,E>,~Recovery)))

Uses (13)

Used by (5)