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
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl 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>,
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
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
sourceimpl PartialEq<LocalMessage> for LocalMessage
impl PartialEq<LocalMessage> for LocalMessage
sourcefn eq(&self, other: &LocalMessage) -> bool
fn eq(&self, other: &LocalMessage) -> bool
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>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more