pub trait FactoryComponent:
Position<<Self::ParentWidget as FactoryView>::Position, Self::Index>
+ Sized
+ 'static {
type ParentWidget: FactoryView + 'static;
type CommandOutput: Debug + Send + 'static;
type Input: Debug + 'static;
type Output: Debug + 'static;
type Init;
type Root: AsRef<<Self::ParentWidget as FactoryView>::Children> + Debug + Clone;
type Widgets: 'static;
type Index;
// Required methods
fn init_model(
init: Self::Init,
index: &Self::Index,
sender: FactorySender<Self>,
) -> Self;
fn init_root(&self) -> Self::Root;
fn init_widgets(
&mut self,
index: &Self::Index,
root: Self::Root,
returned_widget: &<Self::ParentWidget as FactoryView>::ReturnedWidget,
sender: FactorySender<Self>,
) -> Self::Widgets;
// Provided methods
fn update(&mut self, message: Self::Input, sender: FactorySender<Self>) { ... }
fn update_cmd(
&mut self,
message: Self::CommandOutput,
sender: FactorySender<Self>,
) { ... }
fn update_cmd_with_view(
&mut self,
widgets: &mut Self::Widgets,
message: Self::CommandOutput,
sender: FactorySender<Self>,
) { ... }
fn update_view(
&self,
widgets: &mut Self::Widgets,
sender: FactorySender<Self>,
) { ... }
fn update_with_view(
&mut self,
widgets: &mut Self::Widgets,
message: Self::Input,
sender: FactorySender<Self>,
) { ... }
fn shutdown(
&mut self,
widgets: &mut Self::Widgets,
output: Sender<Self::Output>,
) { ... }
fn id(&self) -> String { ... }
}Expand description
A component that’s stored inside a factory.
Similar to Component but adjusted to fit the life cycle
of factories.
Required Associated Types§
Sourcetype ParentWidget: FactoryView + 'static
type ParentWidget: FactoryView + 'static
Container widget to which all widgets of the factory will be added.
Sourcetype CommandOutput: Debug + Send + 'static
type CommandOutput: Debug + Send + 'static
Messages which are received from commands executing in the background.
Sourcetype Root: AsRef<<Self::ParentWidget as FactoryView>::Children> + Debug + Clone
type Root: AsRef<<Self::ParentWidget as FactoryView>::Children> + Debug + Clone
The top-level widget of the factory component.
Sourcetype Widgets: 'static
type Widgets: 'static
The type that’s used for storing widgets created for this factory component.
Sourcetype Index
type Index
The type that’s used by a factory collection as index.
For example, for FactoryVecDeque, this type
is DynamicIndex.
For FactoryHashMap, this type is equal to the key
you use for inserting values.
Required Methods§
Sourcefn init_model(
init: Self::Init,
index: &Self::Index,
sender: FactorySender<Self>,
) -> Self
fn init_model( init: Self::Init, index: &Self::Index, sender: FactorySender<Self>, ) -> Self
Initializes the model.
Sourcefn init_widgets(
&mut self,
index: &Self::Index,
root: Self::Root,
returned_widget: &<Self::ParentWidget as FactoryView>::ReturnedWidget,
sender: FactorySender<Self>,
) -> Self::Widgets
fn init_widgets( &mut self, index: &Self::Index, root: Self::Root, returned_widget: &<Self::ParentWidget as FactoryView>::ReturnedWidget, sender: FactorySender<Self>, ) -> Self::Widgets
Initializes the widgets.
Provided Methods§
Sourcefn update(&mut self, message: Self::Input, sender: FactorySender<Self>)
fn update(&mut self, message: Self::Input, sender: FactorySender<Self>)
Processes inputs received by the component.
Sourcefn update_cmd(
&mut self,
message: Self::CommandOutput,
sender: FactorySender<Self>,
)
fn update_cmd( &mut self, message: Self::CommandOutput, sender: FactorySender<Self>, )
Defines how the component should respond to command updates.
Sourcefn update_cmd_with_view(
&mut self,
widgets: &mut Self::Widgets,
message: Self::CommandOutput,
sender: FactorySender<Self>,
)
fn update_cmd_with_view( &mut self, widgets: &mut Self::Widgets, message: Self::CommandOutput, sender: FactorySender<Self>, )
Handles updates from a command.
Sourcefn update_view(&self, widgets: &mut Self::Widgets, sender: FactorySender<Self>)
fn update_view(&self, widgets: &mut Self::Widgets, sender: FactorySender<Self>)
Updates the view after the model has been updated.
Sourcefn update_with_view(
&mut self,
widgets: &mut Self::Widgets,
message: Self::Input,
sender: FactorySender<Self>,
)
fn update_with_view( &mut self, widgets: &mut Self::Widgets, message: Self::Input, sender: FactorySender<Self>, )
Updates the model and view. Optionally returns a command to run.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.