Struct ockam::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§
source§impl 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
source§impl 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.
source§impl LocalMessage
impl LocalMessage
sourcepub fn new(
transport_message: TransportMessage,
local_info: Vec<LocalInfo>
) -> LocalMessage
pub fn new( transport_message: TransportMessage, local_info: Vec<LocalInfo> ) -> LocalMessage
Create a new LocalMessage
from the provided transport message and local information.
Trait Implementations§
source§impl Clone for LocalMessage
impl Clone for LocalMessage
source§fn clone(&self) -> LocalMessage
fn clone(&self) -> LocalMessage
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for LocalMessage
impl Debug for LocalMessage
source§impl<'de> Deserialize<'de> for LocalMessage
impl<'de> Deserialize<'de> for LocalMessage
source§fn deserialize<__D>(
__deserializer: __D
) -> Result<LocalMessage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D
) -> Result<LocalMessage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
source§impl Hash for LocalMessage
impl Hash for LocalMessage
source§impl Ord for LocalMessage
impl Ord for LocalMessage
source§fn cmp(&self, other: &LocalMessage) -> Ordering
fn cmp(&self, other: &LocalMessage) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for LocalMessage
impl PartialEq for LocalMessage
source§fn eq(&self, other: &LocalMessage) -> bool
fn eq(&self, other: &LocalMessage) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for LocalMessage
impl PartialOrd for LocalMessage
source§fn partial_cmp(&self, other: &LocalMessage) -> Option<Ordering>
fn partial_cmp(&self, other: &LocalMessage) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Serialize for LocalMessage
impl Serialize for LocalMessage
source§fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
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§
source§impl<D> AsyncTryClone for D
impl<D> AsyncTryClone for D
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<T> Decodable for Twhere
T: DeserializeOwned,
impl<T> Decodable for Twhere
T: DeserializeOwned,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.