def run
bendvy-ecs-core@0.1.0.4 · machine_handlers.bend:71
import bendvy-ecs-core@0.1.0.4/machine_handlers.bend as MachineHandlers
import Base
import bendvy-ecs-core@0.1.0.4/machine_handler_engine.bend as Engine
import world.bend as W
import system.bend as Sys
import machine.bend as M
71def run(~S:Data,~C:Type,~R:Type,~E:Data,~V:Data,~runner:W.World<S,C,R,E> -> Invocation<V> -> Sys.Outcome<W.World<S,C,R,E>,String,Unit>,~K:Data,~take:W.World<S,C,R,E> -> W.World<S,C,R,E> & M.Slot<S,K,V>,~put:W.World<S,C,R,E> -> M.Slot<S,K,V> -> W.World<S,C,R,E>,~publish:W.World<S,C,R,E> -> M.Transition<V> -> W.World<S,C,R,E>,~same:V -> V -> Bool,owners:Owners<S,C,R,E,V,runner>,world:W.World<S,C,R,E>,captured:M.Snapshot<V>) -> HandlerResult<S,C,R,E,V,runner>:
72 match owners:
73 case Owners{exit,transition,enter}:handler_result(~S,~C,~R,~E,~V,~runner,Engine.run(~S,~W.World<S,C,R,E>,~Entry<S,C,R,E,V,runner>,~Phase,~V,~invoke_phase(~S,~C,~R,~E,~V,~runner),~invoke_initial(~S,~C,~R,~E,~V,~runner),~BendvyExit{},~Transition{},~Enter{},~K,~take,~put,~publish,~same,Engine.Owners{exit,transition,enter},world,captured))