pub(crate) fn apply_refresh<G, D>(
    coll: Collection<G, D, Diff>,
    refresh_schedule: RefreshSchedule
) -> Collection<G, D, Diff>where
    G: Scope<Timestamp = Timestamp>,
    D: Data,
Expand description

This is for REFRESH options on materialized views. It adds an operator that rounds up the timestamps of data and frontiers to the time of the next refresh. See doc/developer/design/20231027_refresh_every_mv.md.

Note that this currently only works with 1-dim timestamps. (This is not an issue for WMR, because iteration numbers should disappear by the time the data gets to the Persist sink.)