Skip to main content

Operator

Trait Operator 

Source
pub trait Operator: Send {
    // Required methods
    fn process(
        &mut self,
        event: &Event,
        ctx: &mut OperatorContext<'_>,
    ) -> OutputVec;
    fn on_timer(
        &mut self,
        timer: Timer,
        ctx: &mut OperatorContext<'_>,
    ) -> OutputVec;
    fn checkpoint(&self) -> OperatorState;
    fn restore(&mut self, state: OperatorState) -> Result<(), OperatorError>;
}
Expand description

Trait implemented by all streaming operators

Required Methods§

Source

fn process(&mut self, event: &Event, ctx: &mut OperatorContext<'_>) -> OutputVec

Process an incoming event

Source

fn on_timer(&mut self, timer: Timer, ctx: &mut OperatorContext<'_>) -> OutputVec

Handle timer expiration

Source

fn checkpoint(&self) -> OperatorState

Checkpoint the operator’s state

Source

fn restore(&mut self, state: OperatorState) -> Result<(), OperatorError>

Restore from a checkpoint

§Errors

Returns OperatorError::StateAccessFailed if the state cannot be accessed Returns OperatorError::SerializationFailed if the state cannot be deserialized

Implementors§

Source§

impl Operator for AsofJoinOperator

Source§

impl Operator for LagLeadOperator

Source§

impl Operator for PartitionedTopKOperator

Source§

impl Operator for StreamJoinOperator

Source§

impl Operator for TemporalJoinOperator

Source§

impl Operator for StreamingTopKOperator

Source§

impl Operator for WatermarkBoundedSortOperator

Source§

impl Operator for WindowLocalSortOperator

Source§

impl<A: Aggregator> Operator for SessionWindowOperator<A>
where A::Acc: 'static + Archive + for<'a> RkyvSerialize<HighSerializer<AlignedVec, ArenaHandle<'a>, Error>>, <A::Acc as Archive>::Archived: for<'a> CheckBytes<HighValidator<'a, Error>> + RkyvDeserialize<A::Acc, HighDeserializer<Error>>,

Source§

impl<A: Aggregator> Operator for SlidingWindowOperator<A>
where A::Acc: 'static + Archive + for<'a> RkyvSerialize<HighSerializer<AlignedVec, ArenaHandle<'a>, Error>>, <A::Acc as Archive>::Archived: for<'a> CheckBytes<HighValidator<'a, Error>> + RkyvDeserialize<A::Acc, HighDeserializer<Error>>,

Source§

impl<A: Aggregator> Operator for TumblingWindowOperator<A>
where A::Acc: 'static + Archive + for<'a> RkyvSerialize<HighSerializer<AlignedVec, ArenaHandle<'a>, Error>>, <A::Acc as Archive>::Archived: for<'a> CheckBytes<HighValidator<'a, Error>> + RkyvDeserialize<A::Acc, HighDeserializer<Error>>,