def take_join

bendvy-ecs-core@0.1.0.4 · machine_world.bend:8

import bendvy-ecs-core@0.1.0.4/machine_world.bend as MachineWorld
import Base
import bendvy-ecs-core@0.1.0.4/clock_state.bend as Clock
import bendvy-ecs-core@0.1.0.4/deferred_command.bend as Deferred
import entity_allocator.bend as Alloc
import machine.bend as M
import world.bend as W

8# Closed resource lenses adapt machine slots to the existing actual ECS world.
9# No component store or affine resource is projected to Data or copied.
10def take_join(~S: Data,~K: Data,~V: Data,~C: Type,~R: Type,~E: Data,
11  +ns: U32,allocator:Alloc.Allocator,
12  store: C,split: R & M.Slot<S,K,V>,+events: List<&2,E>,commands:List<&1,Deferred.Command<W.World<S,C,R,E>>>,
13  +registrations: List<&2,W.RegistrationMeta>,+nextSystem: U32,+clock:Clock.State
14) -> W.World<S,C,R,E> & M.Slot<S,K,V>:
15  (resources,slot)=split
16  (W.World{ns,allocator,store,resources,events,commands,registrations,nextSystem,clock},slot)

Uses (10)

Used by (1)