Skip to main content

Sender

Struct Sender 

Source
pub struct Sender<T: Message> {
    pub actor_id: ActorId,
    /* private fields */
}
Expand description

Sender of a specific message type

Like Caller<T>, Sender has a weak reference to the recipient of the message type, and so will not prevent an actor from stopping if all Addr's have been dropped elsewhere. This allows it to be used in send_later send_intervalactor functions, and not keep the actor alive indefinitely even after all references to it have been dropped (unlessctx.stop()` is called from within)

Fields§

§actor_id: ActorId

Implementations§

Source§

impl<T: Message<Result = ()>> Sender<T>

Source

pub fn send(&self, msg: T) -> Result<()>

Examples found in repository?
examples/subscriber.rs (line 164)
155    async fn handle(&mut self, _ctx: &mut Context<Self>, _msg: Broadcast) {
156        // Generate random number and broadcast that message to all subscribers
157        println!("Broadcasting");
158        // To avoid bringing in rand package for the sake of this example, we are hardcoding the "random" number
159        let random_int: i32 = 20;
160        let broadcast_message = RandomMessage(random_int);
161        let _: Vec<_> = self
162            .subscribers
163            .iter()
164            .map(|subscriber| subscriber.send(broadcast_message.clone()))
165            .collect();
166    }

Trait Implementations§

Source§

impl<T: Message<Result = ()>> Hash for Sender<T>

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T: Message<Result = ()>> PartialEq for Sender<T>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

§

impl<T> Freeze for Sender<T>

§

impl<T> !RefUnwindSafe for Sender<T>

§

impl<T> Send for Sender<T>

§

impl<T> !Sync for Sender<T>

§

impl<T> Unpin for Sender<T>

§

impl<T> UnsafeUnpin for Sender<T>

§

impl<T> !UnwindSafe for Sender<T>

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

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

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

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

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.