pub struct SourceProvidedGenerator { /* private fields */ }Expand description
Watermark generator for sources with embedded watermarks.
Some sources (like Kafka with EOS) may provide watermarks directly. This generator tracks both event timestamps and explicit watermarks.
Implementations§
Source§impl SourceProvidedGenerator
impl SourceProvidedGenerator
Sourcepub fn new(fallback_lateness: i64, prefer_source: bool) -> Self
pub fn new(fallback_lateness: i64, prefer_source: bool) -> Self
Creates a new source-provided generator.
§Arguments
fallback_lateness- Lateness for fallback bounded generatorprefer_source- If true, source watermarks take precedence
Sourcepub fn on_source_watermark(&mut self, watermark: i64) -> Option<Watermark>
pub fn on_source_watermark(&mut self, watermark: i64) -> Option<Watermark>
Updates the watermark from the source.
Call this when the source provides an explicit watermark.
Trait Implementations§
Source§impl WatermarkGenerator for SourceProvidedGenerator
impl WatermarkGenerator for SourceProvidedGenerator
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 SourceProvidedGenerator
impl RefUnwindSafe for SourceProvidedGenerator
impl Send for SourceProvidedGenerator
impl Sync for SourceProvidedGenerator
impl Unpin for SourceProvidedGenerator
impl UnsafeUnpin for SourceProvidedGenerator
impl UnwindSafe for SourceProvidedGenerator
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.