pub struct BoundedOutOfOrdernessGenerator { /* private fields */ }Expand description
Watermark generator with bounded out-of-orderness.
Allows events to arrive out of order by up to max_out_of_orderness milliseconds.
The watermark is always max_timestamp_seen - max_out_of_orderness.
§Example
use laminar_core::time::{BoundedOutOfOrdernessGenerator, WatermarkGenerator, Watermark};
let mut gen = BoundedOutOfOrdernessGenerator::new(100); // 100ms lateness allowed
// First event at t=1000
assert_eq!(gen.on_event(1000), Some(Watermark::new(900)));
// Out-of-order event at t=800 - no watermark advance
assert_eq!(gen.on_event(800), None);
// New max at t=1200
assert_eq!(gen.on_event(1200), Some(Watermark::new(1100)));Implementations§
Source§impl BoundedOutOfOrdernessGenerator
impl BoundedOutOfOrdernessGenerator
Sourcepub fn new(max_out_of_orderness: i64) -> Self
pub fn new(max_out_of_orderness: i64) -> Self
Creates a new generator with the specified maximum out-of-orderness.
§Arguments
max_out_of_orderness- Maximum allowed lateness in milliseconds
Sourcepub fn from_duration(max_out_of_orderness: Duration) -> Self
pub fn from_duration(max_out_of_orderness: Duration) -> Self
Creates a new generator from a Duration.
Sourcepub fn max_out_of_orderness(&self) -> i64
pub fn max_out_of_orderness(&self) -> i64
Returns the maximum out-of-orderness in milliseconds.
Trait Implementations§
Source§impl WatermarkGenerator for BoundedOutOfOrdernessGenerator
impl WatermarkGenerator for BoundedOutOfOrdernessGenerator
Source§fn on_event(&mut self, timestamp: i64) -> Option<Watermark>
fn on_event(&mut self, timestamp: i64) -> Option<Watermark>
Process an event timestamp and potentially emit a new watermark. Read more
Source§fn on_periodic(&mut self) -> Option<Watermark>
fn on_periodic(&mut self) -> Option<Watermark>
Called periodically to emit watermarks based on wall-clock time. Read more
Source§fn current_watermark(&self) -> i64
fn current_watermark(&self) -> i64
Returns the current watermark value without advancing it.
Auto Trait Implementations§
impl Freeze for BoundedOutOfOrdernessGenerator
impl RefUnwindSafe for BoundedOutOfOrdernessGenerator
impl Send for BoundedOutOfOrdernessGenerator
impl Sync for BoundedOutOfOrdernessGenerator
impl Unpin for BoundedOutOfOrdernessGenerator
impl UnwindSafe for BoundedOutOfOrdernessGenerator
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§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.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.