Struct tari_p2p::domain_message::DomainMessage[][src]

pub struct DomainMessage<T> {
    pub source_peer: Peer,
    pub dht_header: DhtMessageHeader,
    pub authenticated_origin: Option<CommsPublicKey>,
    pub inner: T,
}

Wrapper around a received message. Provides source peer and origin information

Fields

source_peer: Peer

The peer which sent this message

dht_header: DhtMessageHeader

This DHT header of this message. If DhtMessageHeader::origin_public_key is different from the source_peer.public_key, this message was forwarded.

authenticated_origin: Option<CommsPublicKey>

The authenticated origin public key of this message or None a message origin was not provided.

inner: T

The domain-level message

Implementations

impl<T> DomainMessage<T>[src]

pub fn inner(&self) -> &T[src]

pub fn into_inner(self) -> T[src]

pub fn into_origin_and_inner(self) -> (CommsPublicKey, T)[src]

Consumes this object returning the public key of the original sender of this message and the message itself

pub fn origin_public_key(&self) -> &CommsPublicKey[src]

Returns the public key that sent this message. If no origin is specified, then the source peer sent this message.

pub fn convert<U>(self) -> DomainMessage<U> where
    U: From<T>, 
[src]

Converts the wrapped value of a DomainMessage to another compatible type.

Note: The Rust compiler doesn't seem to be able to recognise that DomainMessage != DomainMessage, so a blanket From implementation isn't possible at this time

pub fn try_convert<U>(self) -> Result<DomainMessage<U>, U::Error> where
    U: TryFrom<T>, 
[src]

Converts the wrapped value of a DomainMessage to another compatible type.

Note: The Rust compiler doesn't seem to be able to recognise that DomainMessage != DomainMessage, so a blanket From implementation isn't possible at this time

Trait Implementations

impl<T: Clone> Clone for DomainMessage<T>[src]

impl<T: Debug> Debug for DomainMessage<T>[src]

Auto Trait Implementations

impl<T> RefUnwindSafe for DomainMessage<T> where
    T: RefUnwindSafe
[src]

impl<T> Send for DomainMessage<T> where
    T: Send
[src]

impl<T> Sync for DomainMessage<T> where
    T: Sync
[src]

impl<T> Unpin for DomainMessage<T> where
    T: Unpin
[src]

impl<T> UnwindSafe for DomainMessage<T> where
    T: UnwindSafe
[src]

Blanket Implementations

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

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

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

impl<T, U> Cast<U> for T where
    U: FromCast<T>, 

impl<T> CloneAny for T where
    T: Clone + Any

impl<T> DebugAny for T where
    T: Any + Debug

impl<'a, T> DefaultFeatures<'a> for T where
    T: 'a + Clone + Send + Sync

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

impl<T> FromBits<T> for T

impl<T> FromCast<T> for T

impl<T> Instrument for T[src]

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

impl<T, U> IntoBits<U> for T where
    U: FromBits<T>, 

impl<T> IntoSql for T

impl<'a, T> NonSyncFeatures<'a> for T where
    T: 'a + Clone

impl<T> SafeBorrow<T> for T where
    T: ?Sized

impl<T> Same<T> for T

type Output = T

Should always be Self

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<T> UnsafeAny for T where
    T: Any

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