def runner

bendvy-ecs-core@0.1.0.4 · ordinary_owned_event.bend:60

import bendvy-ecs-core@0.1.0.4/ordinary_owned_event.bend as OrdinaryOwnedEvent
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_storage.bend as Storage

60# Advanced single-domain publisher body with opaque staged-owner grant.
61# Runs once, including an empty World. Body failure rolls back recorded ECS
62# changes and recovers separately staged payloads, not arbitrary consumed data.
63def runner(~S:Data,~C:Type,~R:Type,~P:Type,~identity:Domain<S,P>,~Args:Type,~Error:Data,~Out:Type,~body:@-H:Type -> @-grant:Write<S,P,identity,H> -> Args -> H -> H & (T.Outcome<Error> & Out),world:W.World<S,C,Storage.Resources<R,P>,Nat>,args:Args) -> Sys.Outcome<W.World<S,C,Storage.Resources<R,P>,Nat>,Unit,Reply<Error,Out,P>>:
64  returned(~S,~C,~R,~P,~Error,~Out,body(Frame<W.World<S,C,Storage.Resources<R,P>,Nat>,P>,Write{staged(~W.World<S,C,Storage.Resources<R,P>,Nat>,~P)},args,Frame{T.begin(~W.World<S,C,Storage.Resources<R,P>,Nat>,~Nat,world),[]}))

Uses (15)

Used by (3)