Struct ockam_core::Routed

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

A message wrapper that provides message route information.

Workers can accept arbitrary message types, which may not contain information about their routes.

However, the Ockam worker and messaging system already keeps track of this information internally.

This type makes it possible to expose this information to the user, without requiring changes to the user’s message types.

Examples

See ockam_node::WorkerRelay for a usage example.

Implementations§

source§

impl<M: Message> Routed<M>

source

pub fn new( inner: M, msg_addr: Address, src_addr: Address, local_msg: LocalMessage ) -> Self

Create a new Routed message wrapper from the given message, message address and a local message that contains routing information.

source

pub fn msg_addr(&self) -> Address

Return a copy of the message address.

source

pub fn src_addr(&self) -> Address

True sender of the message

source

pub fn onward_route(&self) -> Route

Return a copy of the onward route for the wrapped message.

source

pub fn return_route(&self) -> Route

Return a copy of the full return route for the wrapped message.

source

pub fn sender(&self) -> Result<Address>

Return a copy of the sender address for the wrapped message.

source

pub fn body(self) -> M

Consume the message wrapper and return the original message.

source

pub fn as_body(&self) -> &M

Return a reference to the wrapped message.

source

pub fn into_local_message(self) -> LocalMessage

Consume the message wrapper and return the underlying local message.

source

pub fn into_transport_message(self) -> TransportMessage

Consume the message wrapper and return the underlying transport message.

source

pub fn local_message(&self) -> &LocalMessage

Return a reference to the underlying local message.

source

pub fn payload(&self) -> &[u8]

Return a reference to the underlying transport message’s binary payload.

source

pub fn take_payload(self) -> Vec<u8>

Consume the message wrapper and return the underlying transport message’s binary payload.

source§

impl Routed<Any>

source

pub fn cast<M: Message>(self) -> Result<Routed<M>>

Try to cast an Any message into another valid message type

Trait Implementations§

source§

impl<M: Message + Debug> Debug for Routed<M>

source§

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

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

impl<M: Message> Deref for Routed<M>

§

type Target = M

The resulting type after dereferencing.
source§

fn deref(&self) -> &Self::Target

Dereferences the value.
source§

impl<M: Message> DerefMut for Routed<M>

source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
source§

impl<M: Message + Display> Display for Routed<M>

source§

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

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

impl<M: Message + PartialEq> PartialEq<M> for Routed<M>

source§

fn eq(&self, o: &M) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

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

Auto Trait Implementations§

§

impl<M> RefUnwindSafe for Routed<M>
where M: RefUnwindSafe,

§

impl<M> Send for Routed<M>

§

impl<M> Sync for Routed<M>
where M: Sync,

§

impl<M> Unpin for Routed<M>
where M: Unpin,

§

impl<M> UnwindSafe for Routed<M>
where M: UnwindSafe,

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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>,

§

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.
§

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

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more