def opened

bendvy-ecs-core@0.1.0.4 · internal/relation_failures/barrier.bend:27

import bendvy-ecs-core@0.1.0.4/internal/relation_failures/barrier.bend as Barrier
import Base
import bendvy-ecs-core@0.1.0.4/change_tick.bend as Tick
import bendvy-ecs-core@0.1.0.4/deferred_command.bend as Deferred
import domains.bend as D
import bendvy-ecs-core@0.1.0.4/world.bend as W

27# The deferred barrier advances the actual World clock once. Every command
28# publishes a distinct batch stamped with that same barrier tick.
29def opened(~S: Data,~C: Type,~R: Type,~E: Data,~classify: E -> Maybe<D.DescriptorKey<S>>,advanced: W.World<S,C,R,E> & Tick.Tick,domains: List<&2,D.Domain<S,E>>) -> BarrierState<S,C,R,E>:
30  (world,+tick) = advanced
31  match world:
32    case W.World{+namespace,allocator,store,resource,+events,pending,+registrations,+nextSystemId,+clock}: drain(~S,~C,~R,~E,~classify,List.reverse(&1,Deferred.Command<W.World<S,C,R,E>>,pending),BarrierState{W.World{namespace,allocator,store,resource,events,[],registrations,nextSystemId,clock},domains,Tick.total(tick)})

Uses (13)

Used by (1)