Skip to main content

ReduceWindow

Struct ReduceWindow 

Source
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>

Source

pub fn clear(&mut self)

Clear the presentations, keeping their allocations.

Trait Implementations§

Source§

impl<T, RIn, ROut, K, VIn, VOut> Default for ReduceWindow<T, RIn, ROut, K, VIn, VOut>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<T, RIn, ROut, K, VIn, VOut> Freeze for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
where Vec<((K, VIn), T, RIn)>: Freeze, Vec<(K, T)>: Freeze, Vec<((K, VOut), T, ROut)>: Freeze,

§

impl<T, RIn, ROut, K, VIn, VOut> RefUnwindSafe for ReduceWindow<T, RIn, ROut, K, VIn, VOut>

§

impl<T, RIn, ROut, K, VIn, VOut> Send for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
where Vec<((K, VIn), T, RIn)>: Send, Vec<(K, T)>: Send, Vec<((K, VOut), T, ROut)>: Send,

§

impl<T, RIn, ROut, K, VIn, VOut> Sync for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
where Vec<((K, VIn), T, RIn)>: Sync, Vec<(K, T)>: Sync, Vec<((K, VOut), T, ROut)>: Sync,

§

impl<T, RIn, ROut, K, VIn, VOut> Unpin for ReduceWindow<T, RIn, ROut, K, VIn, VOut>
where Vec<((K, VIn), T, RIn)>: Unpin, Vec<(K, T)>: Unpin, Vec<((K, VOut), T, ROut)>: Unpin,

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

Source§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.