StrongMessageChannel

Trait StrongMessageChannel 

Source
pub trait StrongMessageChannel<M>: MessageChannel<M>
where M: Message,
{ // Required methods fn downgrade(&self) -> Box<dyn WeakMessageChannel<M>>; fn upcast(self) -> Box<dyn MessageChannel<M>>; fn upcast_ref(&self) -> &dyn MessageChannel<M>; fn clone_channel(&self) -> Box<dyn StrongMessageChannel<M>>; fn sink(&self) -> Box<dyn StrongMessageSink<M, Error = Disconnected>>; }
Expand description

A message channel is a channel through which you can send only one kind of message, but to any actor that can handle it. It is like Address, but associated with the message type rather than the actor type. Any existing MessageChannels will prevent the dropping of the actor. If this is undesirable, then the WeakMessageChannel struct should be used instead. A StrongMessageChannel trait object is created by casting a strong Address.

Required Methods§

Source

fn downgrade(&self) -> Box<dyn WeakMessageChannel<M>>

Create a weak message channel. Unlike with the strong variety of message channel (this kind), an actor will not be prevented from being dropped if only weak sinks, channels, and addresses exist.

Source

fn upcast(self) -> Box<dyn MessageChannel<M>>

Upcasts this strong message channel into a boxed generic MessageChannel trait object

Source

fn upcast_ref(&self) -> &dyn MessageChannel<M>

Upcasts this strong message channel into a reference to the generic MessageChannel trait object

Source

fn clone_channel(&self) -> Box<dyn StrongMessageChannel<M>>

Clones this channel as a boxed trait object.

Source

fn sink(&self) -> Box<dyn StrongMessageSink<M, Error = Disconnected>>

Use this message channel as a futures Sink and asynchronously send messages through it.

Implementors§

Source§

impl<A, M> StrongMessageChannel<M> for Address<A>
where M: Message, A: Handler<M>,