pub struct ReduceWindow<T, RIn, ROut, K = u64, VIn = u64, VOut = u64> {
pub input: ProxyBridge<T, RIn, K, VIn>,
pub seeds: Vec<(K, T)>,
pub output: ProxyBridge<T, ROut, K, VOut>,
}Expand description
One window of the key space: the presentations a bounded, key-contiguous snip needs.
Seeds travel as times; records travel netted. The novel data’s two roles are carried by two
different channels: its TIME SUPPORT seeds interesting times and rides seeds, raw; its
RECORDS are mere accumulants and join partners, so they ride input merged with the prior
history, where they may net against it and be advanced like anything else. Consolidation can
only cancel equal-((key, id), time) pairs, and such a time is necessarily in seeds, so no
interesting time is lost to netting — the invariant that once forced the runs apart.
Owned by the harness and refilled by ProxyReduceBackend::next_window.
Fields§
§input: ProxyBridge<T, RIn, K, VIn>The key’s full input — novel and prior merged, netted — sorted & consolidated by ((key, value_id), time).
May be advanced to the compaction frontier.
seeds: Vec<(K, T)>The RAW novel time support: (key, time) pairs sorted by (key, time) and deduplicated.
Record these from the novel batches BEFORE any consolidation or advancement.
A netted-away record’s time must still appear here.
output: ProxyBridge<T, ROut, K, VOut>Accumulated output preceding the retire’s interval, same ordering as input.
Implementations§
Source§impl<T, RIn, ROut, K, VIn, VOut> ReduceWindow<T, RIn, ROut, K, VIn, VOut>
impl<T, RIn, ROut, K, VIn, VOut> ReduceWindow<T, RIn, ROut, K, VIn, VOut>
Trait Implementations§
Auto Trait Implementations§
impl<T, RIn, ROut, K, VIn, VOut> Freeze for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
impl<T, RIn, ROut, K, VIn, VOut> RefUnwindSafe for ReduceWindow<T, RIn, ROut, K, VIn, VOut>where
Vec<((K, VIn), T, RIn)>: RefUnwindSafe,
Vec<(K, T)>: RefUnwindSafe,
Vec<((K, VOut), T, ROut)>: RefUnwindSafe,
impl<T, RIn, ROut, K, VIn, VOut> Send for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
impl<T, RIn, ROut, K, VIn, VOut> Sync for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
impl<T, RIn, ROut, K, VIn, VOut> Unpin for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
impl<T, RIn, ROut, K, VIn, VOut> UnsafeUnpin for ReduceWindow<T, RIn, ROut, K, VIn, VOut>where
Vec<((K, VIn), T, RIn)>: UnsafeUnpin,
Vec<(K, T)>: UnsafeUnpin,
Vec<((K, VOut), T, ROut)>: UnsafeUnpin,
impl<T, RIn, ROut, K, VIn, VOut> UnwindSafe for ReduceWindow<T, RIn, ROut, K, VIn, VOut>where
Vec<((K, VIn), T, RIn)>: UnwindSafe,
Vec<(K, T)>: UnwindSafe,
Vec<((K, VOut), T, ROut)>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
Source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
std::ops::AddAssign, for types that do not implement AddAssign.