def retention
bendvy-ecs-core@0.1.0.4 · event_notice_runtime.bend:74
import bendvy-ecs-core@0.1.0.4/event_notice_runtime.bend as EventNoticeRuntime
import Base
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev
74def retention(~P:Data,~F:Type,~retain:F -> Nat -> List<&2,P> -> F & List<&2,P>,journal:List<&2,Ev.Batch<P>>,family:F) -> Retention<P,F>:
75 match journal:
76 case []:Retention{family,[],[]}
77 case Ev.Batch{+tick,records} <> rest:retained_batch_head(~P,~F,(family => retention(~P,~F,~retain,rest,family)),tick,retained_records(~P,~F,~retain,records,family,tick))