def build

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

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_registration.bend as Reg
import bendvy-ecs-core@0.1.0.3/dependency_plan.bend as Plan
import bendvy-ecs-core@0.1.0.3/dependency_executor.bend as Exec
import bendvy-ecs-core@0.1.0.3/execution_registry.bend as Registry
import bendvy-ecs-core@0.1.0.3/execution_schedule.bend as Schedule
import bendvy-ecs-core@0.1.0.3/execution_deferred_settings.bend as Settings

14def build(~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>),~available:String -> Bool,world:W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,facts:Registry.Facts<Reg.Registry<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Error,Out,dispatch>>,guards:Reg.ConditionRegistry<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Guards,Error,guardDispatch>,handler:Handler,edges:List<&2,Plan.Edge>,+bindings:List<&2,App.Binding>) -> Schedule.Scheduled<App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>>:
15  match facts guards:
16    case Registry.Facts{Reg.Registry{nodes,+planNodes},deferred} Reg.ConditionRegistry{Reg.Registry{guardOwners,+guardNodes},guardInvalid}:Schedule.create(~App.State<W.World<S,L.columns(~S,components),L.resources(~S,resources),E>,Nodes,Guards,Handler>,App.State{world,nodes,guardOwners,handler,bindings},App.checked_guards(App.checked_bindings(guardInvalid,Plan.build(~String,~available,guardNodes,[])),App.checked_bindings(App.valid_bindings(bindings,planNodes,guardNodes),Plan.build(~String,~available,planNodes,edges))),bindings,deferred,Settings.defaults(),[])

Uses (23)

Used by (0)

No other definition uses this definition.