[][src]Struct bastion::envelope::RefAddr

pub struct RefAddr { /* fields omitted */ }

Message signature used to identify message sender and send messages to it.

Example

Bastion::children(|children| {
    children.with_exec(|ctx: BastionContext| {
        async move {
            // Wait for a message to be received...
            let msg: SignedMessage = ctx.recv().await?;
             
            ctx.tell(msg.signature(), "reply").expect("Unable to reply");
            Ok(())
        }
    })
}).expect("Couldn't create the children group.");

Methods

impl RefAddr[src]

pub fn is_sender_identified(&self) -> bool[src]

Checks whether the sender is identified. Usually anonymous sender means messages sent by broadcast and it's other methods implied to be called outside of the Bastion context.

Example

let msg = "A message containing data.";
children_ref.broadcast(msg).expect("Couldn't send the message.");

msg! { ctx.recv().await?,
    ref msg: &'static str => {
        assert!(signature!().is_sender_identified());
    };
    // We are only sending a `&'static str` in this
    // example, so we know that this won't happen...
    _: _ => ();
}

pub fn path(&self) -> &Arc<BastionPath>[src]

Returns BastionPath of a sender

Example

let msg = "A message containing data.";
children_ref.broadcast(msg).expect("Couldn't send the message.");

msg! { ctx.recv().await?,
    ref msg: &'static str => {
        let path = signature!().path();
        assert!(path.is_dead_letters());
    };
    // We are only sending a `&'static str` in this
    // example, so we know that this won't happen...
    _: _ => ();
}

Trait Implementations

impl Clone for RefAddr[src]

impl Debug for RefAddr[src]

Auto Trait Implementations

impl !RefUnwindSafe for RefAddr

impl Send for RefAddr

impl Sync for RefAddr

impl Unpin for RefAddr

impl !UnwindSafe for RefAddr

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> AsAny for T where
    T: Any
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Message for T where
    T: Any + Send + Sync + Debug
[src]

impl<T> State for T where
    T: Send + Sync + 'static, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,