def run
bendvy-ecs-core@0.1.0.3 · execution_relation_buffer.bend:23
import bendvy-ecs-core@0.1.0.3/execution_relation_buffer.bend as ExecutionRelationBuffer
import Base
import bendvy-ecs-core@0.1.0.3/execution_command_buffer.bend as Buffer
import bendvy-ecs-core@0.1.0.3/execution_relation_context.bend as Context
import bendvy-ecs-core@0.1.0.3/execution_relation_resource_dispatch.bend as Dispatch
import bendvy-ecs-core@0.1.0.3/execution_relation_world_publication.bend as Publication
import bendvy-ecs-core@0.1.0.3/execution_relation_operation.bend as Operation
import bendvy-ecs-core@0.1.0.3/execution_composer_layout.bend as Layout
import bendvy-ecs-core@0.1.0.3/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.3/world.bend as W
23
24
25def run(~S:Data,~C:Type,~WR:Type,~E:Data,~P:Type,~D:Type,~resources:Layout.Layout,~same:{WR == Layout.resources(~S,resources) : Type},~program:Dispatch.Program(~S,~resources),context:Context.Context<S,WR,resources,same>,+route:Layout.Route,operation:Operation.Operation<S>,world:W.World<S,C,WR,E>,tick:Tick.Tick) -> W.World<S,C,WR,E> & Buffer.Receipt<S,P,D>:
26 match context world:
27 case Context.Context{expected} W.World{+namespace,allocator,columns,owners,events,pending,registrations,nextSystem,clock,lifecycle}:restored(S,C,WR,E,P,D,Layout.resources(~S,resources),same,route,Publication.Frame{namespace,columns,events,pending,registrations,nextSystem,clock,lifecycle},program(expected,namespace,allocator,Layout.checked_owner(WR,Layout.resources(~S,resources),same,owners),route,operation,tick))