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
Trait Implementations
sourceimpl<D1> OneInTwoOut<(), D1, D1, D1> for SplitOperator<D1> where
D1: Data + for<'a> Deserialize<'a>,
impl<D1> OneInTwoOut<(), D1, D1, D1> for SplitOperator<D1> where
D1: Data + for<'a> Deserialize<'a>,
fn on_data(&mut self, ctx: &mut OneInTwoOutContext<'_, (), D1, D1>, data: &D1)
fn on_watermark(&mut self, _ctx: &mut OneInTwoOutContext<'_, (), D1, D1>)
fn setup(&mut self, setup_context: &mut SetupContext<S>)
fn run(
&mut self,
config: &OperatorConfig,
read_stream: &mut ReadStream<T>,
left_write_stream: &mut WriteStream<U>,
right_write_stream: &mut WriteStream<V>
)
fn destroy(&mut self)
Auto Trait Implementations
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more