Trait relm4::component::SimpleAsyncComponent
source · pub trait SimpleAsyncComponent: Sized + 'static {
type Input: Debug + 'static;
type Output: Debug + 'static;
type Init;
type Root: Debug + Clone;
type Widgets: 'static;
// Required methods
fn init_root() -> Self::Root;
fn init<'async_trait>(
init: Self::Init,
root: Self::Root,
sender: AsyncComponentSender<Self>
) -> Pin<Box<dyn Future<Output = AsyncComponentParts<Self>> + 'async_trait>>
where Self: 'async_trait;
// Provided methods
fn init_loading_widgets(_root: &mut Self::Root) -> Option<LoadingWidgets> { ... }
fn update<'life0, 'async_trait>(
&'life0 mut self,
message: Self::Input,
sender: AsyncComponentSender<Self>
) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
fn update_cmd<'life0, 'life1, 'async_trait>(
&'life0 mut self,
input: &'life1 Sender<Self::Input>,
output: Sender<Self::Output>
) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait { ... }
fn update_view(
&self,
widgets: &mut Self::Widgets,
sender: AsyncComponentSender<Self>
) { ... }
fn shutdown(
&mut self,
widgets: &mut Self::Widgets,
output: Sender<Self::Output>
) { ... }
}
Expand description
Asynchronous variant of SimpleComponent
.
Required Associated Types§
Required Methods§
sourcefn init<'async_trait>(
init: Self::Init,
root: Self::Root,
sender: AsyncComponentSender<Self>
) -> Pin<Box<dyn Future<Output = AsyncComponentParts<Self>> + 'async_trait>>where
Self: 'async_trait,
fn init<'async_trait>( init: Self::Init, root: Self::Root, sender: AsyncComponentSender<Self> ) -> Pin<Box<dyn Future<Output = AsyncComponentParts<Self>> + 'async_trait>>where Self: 'async_trait,
Creates the initial model and view, docking it into the component.
Provided Methods§
sourcefn init_loading_widgets(_root: &mut Self::Root) -> Option<LoadingWidgets>
fn init_loading_widgets(_root: &mut Self::Root) -> Option<LoadingWidgets>
Allows you to initialize the root widget with a temporary value
as a placeholder until the init()
future completes.
This method does nothing by default.
sourcefn update<'life0, 'async_trait>(
&'life0 mut self,
message: Self::Input,
sender: AsyncComponentSender<Self>
) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>( &'life0 mut self, message: Self::Input, sender: AsyncComponentSender<Self> ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait,
Processes inputs received by the component.
sourcefn update_cmd<'life0, 'life1, 'async_trait>(
&'life0 mut self,
input: &'life1 Sender<Self::Input>,
output: Sender<Self::Output>
) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_cmd<'life0, 'life1, 'async_trait>( &'life0 mut self, input: &'life1 Sender<Self::Input>, output: Sender<Self::Output> ) -> Pin<Box<dyn Future<Output = ()> + 'async_trait>>where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,
Defines how the component should respond to command updates.
sourcefn update_view(
&self,
widgets: &mut Self::Widgets,
sender: AsyncComponentSender<Self>
)
fn update_view( &self, widgets: &mut Self::Widgets, sender: AsyncComponentSender<Self> )
Updates the view after the model has been updated.
Implementations on Foreign Types§
source§impl SimpleAsyncComponent for ()
impl SimpleAsyncComponent for ()
An empty, non-interactive component as a placeholder for tests.