def run_with_completion

bendvy-ecs-core@0.1.0.3 · execution_generalized_root_application.bend:27

import bendvy-ecs-core@0.1.0.3/execution_generalized_root_application.bend as ExecutionGeneralizedRootApplication
import Base
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as L
import bendvy-ecs-core@0.1.0.3/world.bend as W
import bendvy-ecs-core@0.1.0.3/dependency_application.bend as App
import bendvy-ecs-core@0.1.0.3/dependency_executor.bend as Exec
import bendvy-ecs-core@0.1.0.3/execution_schedule.bend as Schedule

27def run_with_completion(~S:Data,~components:L.Layout,~resources:L.Layout,~E:Data,~Nodes:Type,~Guards:Type,~Handler:Type,~Error:Data,~Out:Data,~dispatch:Nodes -> W.World<S,L.columns(~S,components),L.resources(~S,resources),E> -> U32 -> Nodes & (W.World<S,L.columns(~S,components),L.resources(~S,resources),E> & Exec.Invocation<Error,Out>),~guardDispatch:Guards -> W.World<S,L.columns(~S,components),L.resources(~S,resources),E> -> U32 -> Guards & (W.World<S,L.columns(~S,components),L.resources(~S,resources),E> & Exec.Invocation<Error,Bool>),~handle:Handler -> Error -> Handler & Exec.Handling,~publish:List<&2,U32> -> W.World<S,L.columns(~S,components),L.resources(~S,resources),E> -> Nodes -> W.World<S,L.columns(~S,components),L.resources(~S,resources),E> & (Nodes & List<&2,U32>),completion:Exec.ExecutionResult<App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>,String,Error,Out> -> Exec.ExecutionResult<App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>,String,Error,Out>,scheduled:Schedule.Scheduled<App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>>) -> Schedule.Scheduled<App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>> & App.Report<Error,Out>:
28  Schedule.run_with_completion(~App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>,~Error,~Out,~App.condition_state(~W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,~Nodes,~Guards,~Handler,~Error,~Out,~dispatch,~guardDispatch,~handle),~App.dispatch_state(~W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,~Nodes,~Guards,~Handler,~Error,~Out,~dispatch,~guardDispatch,~handle),~App.handle_state(~W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,~Nodes,~Guards,~Handler,~Error,~Out,~dispatch,~guardDispatch,~handle),~apply(~S,~components,~resources,~E,~Nodes,~Guards,~Handler,~publish),completion,scheduled)

Uses (20)

Used by (2)