def synced
bendvy-ecs-core@0.1.0.4 · event_publication.bend:50
import bendvy-ecs-core@0.1.0.4/event_publication.bend as EventPublication
import Base
import world.bend as W
import event_runtime.bend as Ev
import event_stream.bend as Leaf
50def synced(~S:Data,~C:Type,~R:Type,~A:Data,~B:Data,~H:Type,observed:W.World<S,C,R,Publication<A,B>> & List<&2,Publication<A,B>>,streams:Streams<S,A,B,H>,+journal:List<&2,Ev.Batch<Publication<A,B>>>,+tick:Nat,frameStart:Nat) -> Application<S,C,R,A,B,H>:
51 match observed streams:
52 case (world,items) Streams{first,second,owners}:
53 +published=List.drop(&2,Publication<A,B>,items,Ev.size(~Publication<A,B>,journal))
54 Application{world,Streams{Leaf.append(~S,~A,first,tick,first_values(~A,~B,published)),Leaf.append(~S,~B,second,tick,second_values(~A,~B,published)),owners},Ev.sync_checked(~Publication<A,B>,Nat.is_lt(0n,Ev.count(~Publication<A,B>,published)),journal,tick,published),tick,frameStart}