Struct relm4::RelmWorker

source ·
pub struct RelmWorker<Model, ParentModel>where
    Model: ComponentUpdate<ParentModel, Widgets = ()> + 'static,
    ParentModel: ModelTrait,{ /* private fields */ }
Expand description

RelmWorkers are like RelmComponents but they don’t have any widgets.

They are usually used to run expansive tasks on different threads and report back when they are finished so that their parent components can keep handling UI events in the meantime. For example you could use a RelmWorker for sending a HTTP request or for copying files.

A RelmWorker has its own model and message type and can send messages to its parent and its children components.

Multiple RelmWorkers that have the same parent are usually bundled along with RelmComponents in a struct that implements Components.

Implementations§

source§

impl<Model, ParentModel> RelmWorker<Model, ParentModel>where Model: ComponentUpdate<ParentModel, Widgets = ()> + 'static, ParentModel: ModelTrait,

source

pub fn new( parent_model: &ParentModel, parent_sender: Sender<ParentModel::Msg> ) -> Self

Create a new RelmWorker that runs on the main thread.

source

pub fn send(&self, msg: Model::Msg) -> Result<(), SendError<Model::Msg>>

Send a message to this component. This can be used by the parent to send messages to this worker.

source

pub fn sender(&self) -> Sender<Model::Msg>

Get a sender to send messages to this component.

source§

impl<Model, ParentModel> RelmWorker<Model, ParentModel>where Model: ComponentUpdate<ParentModel, Widgets = ()> + Send + 'static, Model::Components: Send + 'static, Model::Msg: Send, ParentModel: ModelTrait, ParentModel::Msg: Send,

source

pub fn with_new_thread( parent_model: &ParentModel, parent_sender: Sender<ParentModel::Msg> ) -> Self

Create a new RelmWorker that runs the ComponentUpdate::update function in another thread.

Trait Implementations§

source§

impl<Model, ParentModel> Clone for RelmWorker<Model, ParentModel>where Model: ComponentUpdate<ParentModel, Widgets = ()> + 'static + Clone, ParentModel: ModelTrait + Clone, Model::Msg: Clone,

source§

fn clone(&self) -> RelmWorker<Model, ParentModel>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<Model, ParentModel> Debug for RelmWorker<Model, ParentModel>where Model: ComponentUpdate<ParentModel, Widgets = ()> + 'static + Debug, ParentModel: ModelTrait + Debug, Model::Msg: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<Model, ParentModel> RefUnwindSafe for RelmWorker<Model, ParentModel>where Model: RefUnwindSafe, ParentModel: RefUnwindSafe,

§

impl<Model, ParentModel> Send for RelmWorker<Model, ParentModel>where Model: Send, ParentModel: Send, <Model as Model>::Msg: Send,

§

impl<Model, ParentModel> Sync for RelmWorker<Model, ParentModel>where Model: Sync, ParentModel: Sync, <Model as Model>::Msg: Send,

§

impl<Model, ParentModel> Unpin for RelmWorker<Model, ParentModel>where Model: Unpin, ParentModel: Unpin,

§

impl<Model, ParentModel> UnwindSafe for RelmWorker<Model, ParentModel>where Model: UnwindSafe, ParentModel: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.