Struct crossbus::address::Sender

source ·
pub struct Sender<M: Message> { /* private fields */ }
Expand description

A message producer that deliver messages to the Receiver

Implementations§

source§

impl<M: Message> Sender<M>

source

pub fn as_receiver(&self) -> Receiver<M>

create an instance of Sender from Receiver

source

pub fn capacity(&self) -> usize

get the capcity of the channel

it will remain the usize::MAX when created, but can be updated via set_capacity

source

pub fn set_capacity(&self, cap: usize)

set the capcity of message queue

when the messages reach the capcity it will transimit the queue to state STATUSFULL where no more messages will be received

source

pub fn message_number(&self) -> usize

get the number of messages remain in the queue

struct Num(uisze);
impl Message for Num {}

struct CrossBus;
impl Actor for CrossBus {
    ...
}

let (addr, _) = CrossBus::start();
let sender = addr.sender();
sender.send(Num(1)).unwrap();
sender.send(Num(2)).unwrap();
sender.send(Num(3)).unwrap();
assert_eq!(sender.message_number(), 3)
source

pub fn send(&self, msg: M) -> Result<(), QueueError<M>>where M: Send,

directly push a message into the queue

the message will be inserted the queue and notify the receiver to wake

let sender = addr.sender();
sender.send(Num(1));
source

pub fn downgrade(&self) -> WeakSender<M>

downgrade to WeakSender which can later be upgraded

NOTE that the underlying data could be moved or consumed or otherwise

Trait Implementations§

source§

impl<M: Message> Clone for Sender<M>

source§

fn clone(&self) -> Self

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<M: Message> Debug for Sender<M>

source§

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

Formats the value using the given formatter. Read more
source§

impl<M: Message> Drop for Sender<M>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl<M: Message> Into<Sender<M>> for Addr<M>

source§

fn into(self) -> Sender<M>

Converts this type into the (usually inferred) input type.
source§

impl<M: Message> Unpin for Sender<M>

Auto Trait Implementations§

§

impl<M> !RefUnwindSafe for Sender<M>

§

impl<M> Send for Sender<M>where M: Send + Sync,

§

impl<M> Sync for Sender<M>where M: Send + Sync,

§

impl<M> !UnwindSafe for Sender<M>

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.