pub struct SlidingWindowAssigner { /* private fields */ }Expand description
Sliding window assigner.
Assigns each event to multiple overlapping windows based on its timestamp. Windows are aligned to epoch (timestamp 0).
§Parameters
size_ms: The duration of each window in millisecondsslide_ms: The advance interval between windows in milliseconds
§Window Assignment
An event at timestamp t belongs to all windows [start, start + size)
where start <= t < start + size and start is a multiple of slide.
The number of windows per event is ceil(size / slide).
§Example
use laminar_core::operator::sliding_window::SlidingWindowAssigner;
use std::time::Duration;
// 1-minute window with 20-second slide
let assigner = SlidingWindowAssigner::new(
Duration::from_secs(60),
Duration::from_secs(20),
);
// Event at t=50 belongs to windows: [0,60), [20,80), [40,100)Implementations§
Source§impl SlidingWindowAssigner
impl SlidingWindowAssigner
Sourcepub fn from_millis(size_ms: i64, slide_ms: i64) -> Self
pub fn from_millis(size_ms: i64, slide_ms: i64) -> Self
Creates a new sliding window assigner with sizes in milliseconds.
§Panics
Panics if size or slide is zero/negative, or if slide > size.
Sourcepub fn with_offset_ms(self, offset_ms: i64) -> Self
pub fn with_offset_ms(self, offset_ms: i64) -> Self
Set window offset in milliseconds.
Sourcepub fn windows_per_event(&self) -> usize
pub fn windows_per_event(&self) -> usize
Returns the number of windows each event belongs to.
Trait Implementations§
Source§impl Clone for SlidingWindowAssigner
impl Clone for SlidingWindowAssigner
Source§fn clone(&self) -> SlidingWindowAssigner
fn clone(&self) -> SlidingWindowAssigner
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 Debug for SlidingWindowAssigner
impl Debug for SlidingWindowAssigner
Source§impl WindowAssigner for SlidingWindowAssigner
impl WindowAssigner for SlidingWindowAssigner
Source§fn assign_windows(&self, timestamp: i64) -> WindowIdVec
fn assign_windows(&self, timestamp: i64) -> WindowIdVec
Assigns a timestamp to all overlapping windows.
Returns windows in order from earliest to latest start time.
Source§fn max_timestamp(&self, window_end: i64) -> i64
fn max_timestamp(&self, window_end: i64) -> i64
Returns the maximum timestamp that could still be assigned to a window
ending at window_end.
Auto Trait Implementations§
impl Freeze for SlidingWindowAssigner
impl RefUnwindSafe for SlidingWindowAssigner
impl Send for SlidingWindowAssigner
impl Sync for SlidingWindowAssigner
impl Unpin for SlidingWindowAssigner
impl UnsafeUnpin for SlidingWindowAssigner
impl UnwindSafe for SlidingWindowAssigner
Blanket Implementations§
§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.