def frame

bendvy-ecs-core@0.1.0.4 · event_family_runtime.bend:48

import bendvy-ecs-core@0.1.0.4/event_family_runtime.bend as EventFamilyRuntime
import Base
import bendvy-ecs-core@0.1.0.4/event_family_routing.bend as Route

48# Apply each generated family frame/retention operation at current routing tick,
49# retain only still-represented journal records, and replace World event log with
50# those retained values. Return actual family/owners/World; no gameplay dispatch
51# or implicit affine payload-log retirement is added to this Data layer.
52def frame(~S:Data,~C:Type,~R:Type,~P:Data,~F:Type,~H:Type,~frame:F -> Nat -> F,~retain:F -> Nat -> List<&2,P> -> F & List<&2,P>,runtime:Route.Runtime<S,C,R,P,State<P,F,H>>) -> Route.Runtime<S,C,R,P,State<P,F,H>>:
53  match runtime:
54    case Route.Runtime{world,State{family,owners,journal,_},+tick}:framed_journal(~S,~C,~R,~P,~F,~H,world,owners,tick,retained_journal(~P,~F,~retain,journal,frame(family,tick)))

Uses (7)

Used by (1)