def barrier_advanced

bendvy-ecs-core@0.1.0.4 · event_notice_runtime.bend:183

import bendvy-ecs-core@0.1.0.4/event_notice_runtime.bend as EventNoticeRuntime
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 bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/relation_commands.bend as Notice
import bendvy-ecs-core@0.1.0.4/internal/relation_failures/domains.bend as D
import bendvy-ecs-core@0.1.0.4/internal/relation_failures/barrier.bend as FailureBarrier
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
import bendvy-ecs-core@0.1.0.4/event_family_runtime.bend as Family
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route

183def barrier_advanced(~S:Data,~C:Type,~R:Type,~P:Data,~F:Type,~H:Type,~classify:Notice.Notice<S,P> -> Maybe<D.DescriptorKey<S>>,typed:Family.State<P,F,H>,domains:List<&2,D.Domain<S,Notice.Notice<S,P>>>,positions:List<&2,Ev.Position>,previous:Nat,frameStart:Nat,boundary:Nat,capacity:Nat,nextReader:U32,advanced:W.World<S,C,R,Notice.Notice<S,P>> & Tick.Tick) -> Route.Runtime<S,C,R,Notice.Notice<S,P>,State<S,P,F,H>>:
184  match advanced:
185    case (W.World{namespace,allocator,store,resource,events,pending,registrations,nextSystemId,clock},actual):
186      barrier_drained(~S,~C,~R,~P,~F,~H,typed,positions,frameStart,boundary,capacity,nextReader,
187        FailureBarrier.drain(~S,~C,~R,~Notice.Notice<S,P>,~classify,List.reverse(&1,Deferred.Command<W.World<S,C,R,Notice.Notice<S,P>>>,pending),
188          FailureBarrier.BarrierState{W.World{namespace,allocator,store,resource,events,[],registrations,nextSystemId,clock},domains,Nat.max(previous,Tick.total(actual))}))

Uses (22)

Used by (1)