Struct SplitOperator

Source
pub struct SplitOperator<D1>
where D1: Data + for<'a> Deserialize<'a>,
{ /* private fields */ }
Expand description

Splits an incoming stream of type D1 into two different streams of type D1 using the provided condition function. When evaluated to true, sends messages to left stream, and right stream otherwise.

§Example

The below example shows how to use a SplitOperator to split an incoming stream of usize messages into two different streams one with messages > 10 (left stream) and one with messages <= 10 (right stream), and send them.

// Add the mapping function as an argument to the operator via the OperatorConfig.
let split_config = OperatorConfig::new().name("SplitOperator");
let (left_stream, right_stream) = erdos::connect_one_in_two_out(
    || -> SplitOperator<usize> { SplitOperator::new(|a: &usize| -> bool { a > &10 }) },
    || {},
    split_config,
    &source_stream,
);

Implementations§

Source§

impl<D1> SplitOperator<D1>
where D1: Data + for<'a> Deserialize<'a>,

Source

pub fn new<F>(split_function: F) -> Self
where F: 'static + Fn(&D1) -> bool + Send + Sync,

Trait Implementations§

Source§

impl<D1> OneInTwoOut<(), D1, D1, D1> for SplitOperator<D1>
where D1: Data + for<'a> Deserialize<'a>,

Source§

fn on_data(&mut self, ctx: &mut OneInTwoOutContext<'_, (), D1, D1>, data: &D1)

Source§

fn on_watermark(&mut self, _ctx: &mut OneInTwoOutContext<'_, (), D1, D1>)

Source§

fn setup(&mut self, setup_context: &mut SetupContext<S>)

Source§

fn run( &mut self, config: &OperatorConfig, read_stream: &mut ReadStream<T>, left_write_stream: &mut WriteStream<U>, right_write_stream: &mut WriteStream<V>, )

Source§

fn destroy(&mut self)

Auto Trait Implementations§

§

impl<D1> Freeze for SplitOperator<D1>

§

impl<D1> !RefUnwindSafe for SplitOperator<D1>

§

impl<D1> Send for SplitOperator<D1>

§

impl<D1> Sync for SplitOperator<D1>

§

impl<D1> Unpin for SplitOperator<D1>

§

impl<D1> !UnwindSafe for SplitOperator<D1>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more