[][src]Trait savory_core::prelude::MessageMapper

pub trait MessageMapper<Ms, OtherMs> {
    type SelfWithOtherMs;
    fn map_msg(
        self,
        f: impl Clone + FnOnce(Ms) -> OtherMs + 'static
    ) -> Self::SelfWithOtherMs; }

Associated Types

Loading content...

Required methods

fn map_msg(
    self,
    f: impl Clone + FnOnce(Ms) -> OtherMs + 'static
) -> Self::SelfWithOtherMs

Loading content...

Implementations on Foreign Types

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for Vec<El<Ms>> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = Vec<El<OtherMs>>

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for El<Ms> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = El<OtherMs>

fn map_msg(self, f: impl Clone + FnOnce(Ms) -> OtherMs + 'static) -> El<OtherMs>[src]

Maps an element's message to have another message.

This allows third party components to integrate with your application without having to know about your Msg type beforehand.

Note

There is an overhead to calling this versus keeping all messages under one type. The deeper the nested structure of children, the more time this will take to run.

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for EventHandler<Ms> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = EventHandler<OtherMs>

impl<Ms, OtherMs, GMs> MessageMapper<Ms, OtherMs> for Effect<Ms, GMs> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = Effect<OtherMs, GMs>

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for Vec<Node<Ms>> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = Vec<Node<OtherMs>>

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for EventHandlerManager<Ms> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = EventHandlerManager<OtherMs>

fn map_msg(
    self,
    f: impl Clone + FnOnce(Ms) -> OtherMs + 'static
) -> EventHandlerManager<OtherMs>
[src]

Note: Listeners will be automatically detached and removed. You have to call attach_listeners to recreate them.

Loading content...

Implementors

impl<Ms, OtherMs> MessageMapper<Ms, OtherMs> for Node<Ms> where
    Ms: 'static,
    OtherMs: 'static, 
[src]

type SelfWithOtherMs = Node<OtherMs>

fn map_msg(
    self,
    f: impl Clone + FnOnce(Ms) -> OtherMs + 'static
) -> Node<OtherMs>
[src]

See note on impl for El

Loading content...