pub struct StreamBetaNode {
pub name: String,
pub left_input: BetaInput,
pub right_input: BetaInput,
pub join_conditions: Vec<JoinCondition>,
pub strategy: JoinStrategy,
/* private fields */
}Expand description
Beta node for joining two streams (or stream + joined result) Supports nested joins for 3+ stream correlation
Fields§
§name: StringName for debugging
left_input: BetaInputLeft input (alpha node or nested beta node)
right_input: BetaInputRight input (alpha node or nested beta node)
join_conditions: Vec<JoinCondition>Join conditions (e.g., zone_id == zone_id)
strategy: JoinStrategyJoin strategy
Implementations§
Source§impl StreamBetaNode
impl StreamBetaNode
Sourcepub fn new(
name: String,
left_input: BetaInput,
right_input: BetaInput,
join_conditions: Vec<JoinCondition>,
strategy: JoinStrategy,
) -> Self
pub fn new( name: String, left_input: BetaInput, right_input: BetaInput, join_conditions: Vec<JoinCondition>, strategy: JoinStrategy, ) -> Self
Create a new beta node for stream join
Sourcepub fn from_alpha_nodes(
name: String,
left_alpha: Arc<Mutex<StreamAlphaNode>>,
right_alpha: Arc<Mutex<StreamAlphaNode>>,
join_conditions: Vec<JoinCondition>,
strategy: JoinStrategy,
) -> Self
pub fn from_alpha_nodes( name: String, left_alpha: Arc<Mutex<StreamAlphaNode>>, right_alpha: Arc<Mutex<StreamAlphaNode>>, join_conditions: Vec<JoinCondition>, strategy: JoinStrategy, ) -> Self
Create beta node from two alpha nodes (simple 2-stream join)
Sourcepub fn from_beta_and_alpha(
name: String,
left_beta: Arc<Mutex<StreamBetaNode>>,
right_alpha: Arc<Mutex<StreamAlphaNode>>,
join_conditions: Vec<JoinCondition>,
strategy: JoinStrategy,
) -> Self
pub fn from_beta_and_alpha( name: String, left_beta: Arc<Mutex<StreamBetaNode>>, right_alpha: Arc<Mutex<StreamAlphaNode>>, join_conditions: Vec<JoinCondition>, strategy: JoinStrategy, ) -> Self
Create beta node for nested join (beta + alpha)
Sourcepub fn process_left_event(
&mut self,
event: StreamEvent,
) -> Vec<MultiStreamJoinResult>
pub fn process_left_event( &mut self, event: StreamEvent, ) -> Vec<MultiStreamJoinResult>
Process event from left input (wrap in MultiStreamJoinResult)
Sourcepub fn process_right_event(
&mut self,
event: StreamEvent,
) -> Vec<MultiStreamJoinResult>
pub fn process_right_event( &mut self, event: StreamEvent, ) -> Vec<MultiStreamJoinResult>
Process event from right input (wrap in MultiStreamJoinResult)
Sourcepub fn process_left_result(
&mut self,
result: MultiStreamJoinResult,
) -> Vec<MultiStreamJoinResult>
pub fn process_left_result( &mut self, result: MultiStreamJoinResult, ) -> Vec<MultiStreamJoinResult>
Process join result from left input (for nested beta nodes)
Sourcepub fn process_right_result(
&mut self,
result: MultiStreamJoinResult,
) -> Vec<MultiStreamJoinResult>
pub fn process_right_result( &mut self, result: MultiStreamJoinResult, ) -> Vec<MultiStreamJoinResult>
Process join result from right input (for nested beta nodes)
Sourcepub fn get_stats(&self) -> BetaNodeStats
pub fn get_stats(&self) -> BetaNodeStats
Get statistics about buffer sizes
Trait Implementations§
Auto Trait Implementations§
impl Freeze for StreamBetaNode
impl RefUnwindSafe for StreamBetaNode
impl Send for StreamBetaNode
impl Sync for StreamBetaNode
impl Unpin for StreamBetaNode
impl UnwindSafe for StreamBetaNode
Blanket Implementations§
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
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