Struct rsiot_component_core::ComponentChain
source · pub struct ComponentChain<TMessage>where
TMessage: IMessage,{ /* private fields */ }
Expand description
Объединение компонентов в одну цепочку
TODO - добавить проверку конфигурации при вызовах split(), branch() …
Пример
//! Собрать такую цепочку:
//! 0 -> 1 -> 2 -> 3 ---> 9 -> 10
//! -> 4 -> 5 --->
//! -> 6 -> 7 -> 8
//!
use rsiot_component_core::{component_example, ComponentChain};
use rsiot_messages_core::ExampleMessage;
fn main() {
let _chain = ComponentChain::<ExampleMessage>::new(100)
.add_cmp(component_example::new())
.add_cmp(component_example::new())
.split()
.add_cmp(component_example::new())
.add_cmp(component_example::new())
.branch()
.add_cmp(component_example::new())
.add_cmp(component_example::new())
.branch()
.add_cmp(component_example::new())
.add_cmp(component_example::new())
.add_cmp(component_example::new())
.join()
.add_cmp(component_example::new())
.add_cmp(component_example::new());
}
Implementations§
source§impl<TMessage> ComponentChain<TMessage>where
TMessage: IMessage + 'static,
impl<TMessage> ComponentChain<TMessage>where
TMessage: IMessage + 'static,
sourcepub fn add_cmp(self, component: Box<dyn IComponent<TMessage>>) -> Self
pub fn add_cmp(self, component: Box<dyn IComponent<TMessage>>) -> Self
Добавить компонент
Auto Trait Implementations§
impl<TMessage> !RefUnwindSafe for ComponentChain<TMessage>
impl<TMessage> !Send for ComponentChain<TMessage>
impl<TMessage> !Sync for ComponentChain<TMessage>
impl<TMessage> Unpin for ComponentChain<TMessage>
impl<TMessage> !UnwindSafe for ComponentChain<TMessage>
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