Struct ockam_core::LocalMessage
source · [−]pub struct LocalMessage { /* private fields */ }
Expand description
A message type that is routed locally within a single node.
LocalMessage
consists of a TransportMessage
and
LocalInfo
in binary format, that can be added by Workers
within the same node.
Transport Messages are used to transfer messages between different
nodes using Transport Workers. Upon arrival at a receiving
Transport Worker, TransportMessage
is wrapped inside
LocalMessage
and forwarded to other Workers inside that node.
LocalMessage
provides a mechanism for transporting metadata that
is trusted to come from the same node. This is convenient for
delegating Authentication/Authorization mechanisms to dedicated
local Workers.
This type is exposed in ockam_core
(and the root ockam
crate) in
order to provide a mechanism for third-party developers to create
custom transport channel routers.
Casual users of Ockam should never have to interact with this type directly.
Examples
See ockam_transport_tcp::workers::receiver::TcpRecvProcessor
for a usage example.
Implementations
sourceimpl LocalMessage
impl LocalMessage
sourcepub fn into_transport_message(self) -> TransportMessage
pub fn into_transport_message(self) -> TransportMessage
Consumes the message and returns the underlying transport message.
sourcepub fn transport(&self) -> &TransportMessage
pub fn transport(&self) -> &TransportMessage
Return a reference to the underlying transport message.
sourcepub fn transport_mut(&mut self) -> &mut TransportMessage
pub fn transport_mut(&mut self) -> &mut TransportMessage
Return a mutable reference to the underlying transport message.
sourcepub fn local_info(&self) -> &[LocalInfo]
pub fn local_info(&self) -> &[LocalInfo]
Return a reference to local information added by Workers within the same node.
sourcepub fn dissolve(self) -> (TransportMessage, Vec<LocalInfo>)
pub fn dissolve(self) -> (TransportMessage, Vec<LocalInfo>)
Dissolve
sourceimpl LocalMessage
impl LocalMessage
sourcepub fn append_local_info(&mut self, local_info: LocalInfo)
pub fn append_local_info(&mut self, local_info: LocalInfo)
Append a new LocalInfo
entry.
sourcepub fn replace_local_info(&mut self, local_info: LocalInfo)
pub fn replace_local_info(&mut self, local_info: LocalInfo)
Replace all LocalInfo
entries matching the type identifier
of the given LocalInfo
with itself.
sourcepub fn clear_local_info(&mut self, type_identifier: &str)
pub fn clear_local_info(&mut self, type_identifier: &str)
Clear all LocalInfo
entries with the given type identifier.
sourceimpl LocalMessage
impl LocalMessage
sourcepub fn new(
transport_message: TransportMessage,
local_info: Vec<LocalInfo>
) -> Self
pub fn new(
transport_message: TransportMessage,
local_info: Vec<LocalInfo>
) -> Self
Create a new LocalMessage
from the provided transport message and local information.
Trait Implementations
sourceimpl Clone for LocalMessage
impl Clone for LocalMessage
sourcefn clone(&self) -> LocalMessage
fn clone(&self) -> LocalMessage
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for LocalMessage
impl Debug for LocalMessage
sourceimpl<'de> Deserialize<'de> for LocalMessage
impl<'de> Deserialize<'de> for LocalMessage
sourcefn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl Hash for LocalMessage
impl Hash for LocalMessage
sourceimpl Ord for LocalMessage
impl Ord for LocalMessage
sourcefn cmp(&self, other: &LocalMessage) -> Ordering
fn cmp(&self, other: &LocalMessage) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Self where
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<LocalMessage> for LocalMessage
impl PartialEq<LocalMessage> for LocalMessage
sourcefn eq(&self, other: &LocalMessage) -> bool
fn eq(&self, other: &LocalMessage) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &LocalMessage) -> bool
fn ne(&self, other: &LocalMessage) -> bool
This method tests for !=
.
sourceimpl PartialOrd<LocalMessage> for LocalMessage
impl PartialOrd<LocalMessage> for LocalMessage
sourcefn partial_cmp(&self, other: &LocalMessage) -> Option<Ordering>
fn partial_cmp(&self, other: &LocalMessage) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for LocalMessage
impl Serialize for LocalMessage
impl Eq for LocalMessage
impl Message for LocalMessage
impl StructuralEq for LocalMessage
impl StructuralPartialEq for LocalMessage
Auto Trait Implementations
impl RefUnwindSafe for LocalMessage
impl Send for LocalMessage
impl Sync for LocalMessage
impl Unpin for LocalMessage
impl UnwindSafe for LocalMessage
Blanket Implementations
sourceimpl<D> AsyncTryClone for D where
D: Clone + Sync,
impl<D> AsyncTryClone for D where
D: Clone + Sync,
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more