Struct rsiot_component_core::ComponentExecutor
source · pub struct ComponentExecutor<TMessage>where
TMessage: IMessage,{ /* private fields */ }
Expand description
Запуск коллекции компонентов в работу
§Примеры
§Многопоточное окружение
TODO
§Однопоточное окружение
TODO
§Однопоточное окружение - WASM (Leptos)
use leptos::*;
let context = LocalSet::new();
context.spawn_local(async move {
ComponentExecutor::<Message>::new(100)
.add_cmp(cmp_websocket_client_wasm::Cmp::new(ws_client_config))
.add_cmp(cmp_leptos::Cmp::new(leptos_config))
.wait_result()
.await?;
Ok(()) as anyhow::Result<()>
});
spawn_local(context);
Ok(())
Implementations§
source§impl<TMessage> ComponentExecutor<TMessage>where
TMessage: IMessage + 'static,
impl<TMessage> ComponentExecutor<TMessage>where
TMessage: IMessage + 'static,
sourcepub fn add_cmp(
self,
component: impl IComponent<TMessage> + Send + 'static
) -> Selfwhere
TMessage: IMessage,
pub fn add_cmp(
self,
component: impl IComponent<TMessage> + Send + 'static
) -> Selfwhere
TMessage: IMessage,
Добавить компонент
sourcepub async fn wait_result(&mut self) -> Result<(), ComponentError>
pub async fn wait_result(&mut self) -> Result<(), ComponentError>
Запустить на выполнение все компоненты.
Компоненты не должны заканчивать выполнение. Если хоть один остановился (неважно по какой причине - по ошибке или нет), это ошибка выполнения.
Auto Trait Implementations§
impl<TMessage> !RefUnwindSafe for ComponentExecutor<TMessage>
impl<TMessage> Send for ComponentExecutor<TMessage>
impl<TMessage> Sync for ComponentExecutor<TMessage>
impl<TMessage> Unpin for ComponentExecutor<TMessage>
impl<TMessage> !UnwindSafe for ComponentExecutor<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