pub struct TransactionWindow<T, F: Fn(&T) -> TransactionOp> { /* private fields */ }Expand description
Window that closes according to user supplied logic
- Windows are implicitly created when the first element for the partition is received.
- Only one window per partition can be active at the same time.
- The
logicfunction determines when (and if) the window should be committed producing an output. - The
logicfunction is called on each element before it is passed to the accumulator. - Returning
TransactionOp::Continuewill keep the window open and continue processing. - Returing
TransactionOp::Commitwill close the current window and generate an output. (The element triggering the commit will be included in the window) - Returning
TransactionOp::Discardwill close the window dropping the accumulator without producing an output - Returning
TransactionOp::CommitAfterwill register the window to be commited after a watermark with event time greater than the specified time has been received. The commit time can be overwritten by another message or cancelled by returningTransactionOp::Discard.
Implementations§
Source§impl<T, F: Fn(&T) -> TransactionOp> TransactionWindow<T, F>
impl<T, F: Fn(&T) -> TransactionOp> TransactionWindow<T, F>
Trait Implementations§
Source§impl<T: Clone, F: Clone + Fn(&T) -> TransactionOp> Clone for TransactionWindow<T, F>
impl<T: Clone, F: Clone + Fn(&T) -> TransactionOp> Clone for TransactionWindow<T, F>
Source§fn clone(&self) -> TransactionWindow<T, F>
fn clone(&self) -> TransactionWindow<T, F>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<T: Data, F: Fn(&T) -> TransactionOp + Data> WindowDescription<T> for TransactionWindow<T, F>
impl<T: Data, F: Fn(&T) -> TransactionOp + Data> WindowDescription<T> for TransactionWindow<T, F>
Source§type Manager<A: WindowAccumulator<In = T>> = TransactionWindowManager<A, F>
type Manager<A: WindowAccumulator<In = T>> = TransactionWindowManager<A, F>
WindowManager corresponding to the WindowDescription
Source§fn build<A: WindowAccumulator<In = T>>(
&self,
accumulator: A,
) -> Self::Manager<A>
fn build<A: WindowAccumulator<In = T>>( &self, accumulator: A, ) -> Self::Manager<A>
Build a window manager that dispatches elements of each window to a clone of the
accumulator passed as parameter
Auto Trait Implementations§
impl<T, F> Freeze for TransactionWindow<T, F>where
F: Freeze,
impl<T, F> RefUnwindSafe for TransactionWindow<T, F>where
F: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, F> Send for TransactionWindow<T, F>
impl<T, F> Sync for TransactionWindow<T, F>
impl<T, F> Unpin for TransactionWindow<T, F>
impl<T, F> UnwindSafe for TransactionWindow<T, F>where
F: UnwindSafe,
T: 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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CloneableStorage for T
impl<T> CloneableStorage for T
fn clone_storage(&self) -> Box<dyn CloneableStorage>
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 more