Skip to main content

WatermarkGenerator

Trait WatermarkGenerator 

Source
pub trait WatermarkGenerator: Send + Sync {
    // Required methods
    fn on_event(&mut self, timestamp: i64, partition: u32) -> Option<Watermark>;
    fn on_periodic_check(&mut self) -> Option<Watermark>;
    fn current_watermark(&self) -> Watermark;
    fn reset(&mut self);
    fn partition_watermark(&self, partition: u32) -> Option<Watermark>;
}
Expand description

Trait for generating watermarks from event streams

Required Methods§

Source

fn on_event(&mut self, timestamp: i64, partition: u32) -> Option<Watermark>

Called when a new event arrives

§Arguments
  • timestamp - The event timestamp in milliseconds
  • partition - The partition ID the event belongs to
§Returns

An optional watermark if one should be emitted

Source

fn on_periodic_check(&mut self) -> Option<Watermark>

Called periodically to check if a watermark should be emitted

§Returns

An optional watermark if one should be emitted

Source

fn current_watermark(&self) -> Watermark

Gets the current watermark without advancing it

Source

fn reset(&mut self)

Resets the watermark generator to its initial state

Source

fn partition_watermark(&self, partition: u32) -> Option<Watermark>

Gets the watermark for a specific partition

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§