pub struct ProcessingTimeGenerator { /* private fields */ }Expand description
Processing-time watermark generator.
Ignores event timestamps entirely and advances the watermark based on
wall-clock time. Use with PROCTIME() sources where events are processed
in arrival order without event-time semantics.
on_eventreturnsNone(event timestamps are ignored)on_periodicreturnsSome(Watermark::new(now_millis()))
§Example
use laminar_core::time::{ProcessingTimeGenerator, WatermarkGenerator};
let mut gen = ProcessingTimeGenerator::new();
// on_event ignores the timestamp
assert_eq!(gen.on_event(1000), None);
// on_periodic returns wall-clock time
let wm = gen.on_periodic();
assert!(wm.is_some());Implementations§
Trait Implementations§
Source§impl Default for ProcessingTimeGenerator
impl Default for ProcessingTimeGenerator
Source§impl WatermarkGenerator for ProcessingTimeGenerator
impl WatermarkGenerator for ProcessingTimeGenerator
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.
Source§fn advance_watermark(&mut self, timestamp: i64) -> Option<Watermark>
fn advance_watermark(&mut self, timestamp: i64) -> Option<Watermark>
Advances the watermark to at least the given timestamp from an external source. Read more
Source§fn is_processing_time(&self) -> bool
fn is_processing_time(&self) -> bool
Whether the watermark is processing-time based (wall clock), rather than
derived from the event-time column. Such a watermark lives in a different
time domain than the event timestamps, so comparing the two to drop “late”
rows would discard every event — callers skip source-side late-filtering
when this is
true. Defaults to false (event-time generators).Auto Trait Implementations§
impl Freeze for ProcessingTimeGenerator
impl RefUnwindSafe for ProcessingTimeGenerator
impl Send for ProcessingTimeGenerator
impl Sync for ProcessingTimeGenerator
impl Unpin for ProcessingTimeGenerator
impl UnsafeUnpin for ProcessingTimeGenerator
impl UnwindSafe for ProcessingTimeGenerator
Blanket Implementations§
impl<T> Allocation for T
§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
§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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§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.