def synchronize_world
bendvy-ecs-core@0.1.0.4 · event_family_runtime.bend:19
import bendvy-ecs-core@0.1.0.4/event_family_runtime.bend as EventFamilyRuntime
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
19def synchronize_world(~S:Data,~C:Type,~R:Type,~P:Data,~F:Type,~H:Type,~sync:F -> Nat -> List<&2,P> -> F,state:State<P,F,H>,+tick:Nat,observed:W.World<S,C,R,P> & List<&2,P>) -> W.World<S,C,R,P> & State<P,F,H>:
20 match state:
21 case State{family,owners,+journal,frameStart}:
22 (world,records)=observed
23 +published=List.drop(&2,P,records,Ev.size(~P,journal))
24 (world,State{sync(family,tick,published),owners,Ev.sync_checked(~P,Nat.is_lt(0n,Ev.count(~P,published)),journal,tick,published),frameStart})