pub struct VecReduceBackend<K, V, W, T, R, L> { /* private fields */ }Expand description
A reference ProxyReduceBackend over VBatch storage.
Implementations§
Source§impl<K, V, W, T, R, L> VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> VecReduceBackend<K, V, W, T, R, L>
Sourcepub fn new(logic: L) -> Self
pub fn new(logic: L) -> Self
A backend deferring value semantics to logic, covering the key space in windows.
Sourcepub fn with_window(logic: L, window_size: usize) -> Self
pub fn with_window(logic: L, window_size: usize) -> Self
A backend with an explicit window budget, in presented records.
Trait Implementations§
Source§impl<K, V, W, T, R, L> ProxyReduceBackend<T, Rc<ChunkBatch<VecChunk<u64, (K, V), T, R>>>, Rc<ChunkBatch<VecChunk<u64, (K, W), T, R>>>> for VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> ProxyReduceBackend<T, Rc<ChunkBatch<VecChunk<u64, (K, V), T, R>>>, Rc<ChunkBatch<VecChunk<u64, (K, W), T, R>>>> for VecReduceBackend<K, V, W, T, R, L>
Source§type VOut = u64
type VOut = u64
Output value proxies, including newly produced values, valid throughout a window.
Source§fn begin(&mut self, _description: Description<T>)
fn begin(&mut self, _description: Description<T>)
Initiate a session to create batches for these descriptions, which span
[lower, upper). Read moreSource§fn next_window(
&mut self,
instance: &ReduceInstance<'_, T, Rc<ChunkBatch<VecChunk<u64, (K, V), T, R>>>, Rc<ChunkBatch<VecChunk<u64, (K, W), T, R>>>>,
changed: &[u64],
from: &mut KeyPosition<u64>,
window: &mut ReduceWindow<T, R, R>,
)
fn next_window( &mut self, instance: &ReduceInstance<'_, T, Rc<ChunkBatch<VecChunk<u64, (K, V), T, R>>>, Rc<ChunkBatch<VecChunk<u64, (K, W), T, R>>>>, changed: &[u64], from: &mut KeyPosition<u64>, window: &mut ReduceWindow<T, R, R>, )
Present the next window of the key space, and advance
from past it. Read moreSource§fn reduce_corrections(
&mut self,
keys: &[u64],
in_ends: &[usize],
input: &[(u64, R)],
out_ends: &[usize],
output: &[(u64, R)],
) -> (Vec<(u64, R)>, Vec<usize>)
fn reduce_corrections( &mut self, keys: &[u64], in_ends: &[usize], input: &[(u64, R)], out_ends: &[usize], output: &[(u64, R)], ) -> (Vec<(u64, R)>, Vec<usize>)
A wave of input-output reconciliation, in which the backend supplies necessary edits. Read more
Auto Trait Implementations§
impl<K, V, W, T, R, L> !Send for VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> !Sync for VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> Freeze for VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> RefUnwindSafe for VecReduceBackend<K, V, W, T, R, L>where
L: RefUnwindSafe,
Vec<(K, V)>: RefUnwindSafe,
Vec<(K, W)>: RefUnwindSafe,
HashMap<(K, W), u64>: RefUnwindSafe,
Vec<VecChunk<u64, (K, W), T, R>>: RefUnwindSafe,
Vec<((u64, (K, W)), T, R)>: RefUnwindSafe,
impl<K, V, W, T, R, L> Unpin for VecReduceBackend<K, V, W, T, R, L>
impl<K, V, W, T, R, L> UnsafeUnpin for VecReduceBackend<K, V, W, T, R, L>where
L: UnsafeUnpin,
Vec<(K, V)>: UnsafeUnpin,
Vec<(K, W)>: UnsafeUnpin,
HashMap<(K, W), u64>: UnsafeUnpin,
Vec<VecChunk<u64, (K, W), T, R>>: UnsafeUnpin,
Vec<((u64, (K, W)), T, R)>: UnsafeUnpin,
impl<K, V, W, T, R, L> UnwindSafe for VecReduceBackend<K, V, W, T, R, L>where
L: UnwindSafe,
Vec<(K, V)>: UnwindSafe,
Vec<(K, W)>: UnwindSafe,
HashMap<(K, W), u64>: UnwindSafe,
Vec<VecChunk<u64, (K, W), T, R>>: UnwindSafe,
Vec<((u64, (K, W)), T, R)>: 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
Mutably borrows from an owned value. Read more
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> ⓘ
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 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> ⓘ
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 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)
The method of
std::ops::AddAssign, for types that do not implement AddAssign.