FactoryComponent

Trait FactoryComponent 

Source
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§

Source

type ParentWidget: FactoryView + 'static

Container widget to which all widgets of the factory will be added.

Source

type CommandOutput: Debug + Send + 'static

Messages which are received from commands executing in the background.

Source

type Input: Debug + 'static

The message type that the factory component accepts as inputs.

Source

type Output: Debug + 'static

The message type that the factory component provides as outputs.

Source

type Init

The parameter used to initialize the factory component.

Source

type Root: AsRef<<Self::ParentWidget as FactoryView>::Children> + Debug + Clone

The top-level widget of the factory component.

Source

type Widgets: 'static

The type that’s used for storing widgets created for this factory component.

Source

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§

Source

fn init_model( init: Self::Init, index: &Self::Index, sender: FactorySender<Self>, ) -> Self

Initializes the model.

Source

fn init_root(&self) -> Self::Root

Initializes the root widget

Source

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§

Source

fn update(&mut self, message: Self::Input, sender: FactorySender<Self>)

Processes inputs received by the component.

Source

fn update_cmd( &mut self, message: Self::CommandOutput, sender: FactorySender<Self>, )

Defines how the component should respond to command updates.

Source

fn update_cmd_with_view( &mut self, widgets: &mut Self::Widgets, message: Self::CommandOutput, sender: FactorySender<Self>, )

Handles updates from a command.

Source

fn update_view(&self, widgets: &mut Self::Widgets, sender: FactorySender<Self>)

Updates the view after the model has been updated.

Source

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.

Source

fn shutdown( &mut self, widgets: &mut Self::Widgets, output: Sender<Self::Output>, )

Last method called before a component is shut down.

Source

fn id(&self) -> String

An identifier for the component used for debug logging.

The default implementation of this method uses the address of the component, but implementations are free to provide more meaningful identifiers.

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.

Implementors§