pub enum Message {
Request {
source: Address,
expects_response: Option<u64>,
body: Vec<u8>,
metadata: Option<String>,
capabilities: Vec<Capability>,
},
Response {
source: Address,
body: Vec<u8>,
metadata: Option<String>,
context: Option<Vec<u8>>,
capabilities: Vec<Capability>,
},
}
Expand description
The basic Message
type.
A Message
is either a crate::Request
or a crate::Response
.
Best practices when handling a Message
:
- Match on whether its a
crate::Request
or acrate::Response
- Match on who the message is from (the
source
Address
) - Parse and interpret the
body
,metadata
, and/orcontext
based on who the message is from and what your process expects from them.
Variants§
Implementations§
Source§impl Message
impl Message
Sourcepub fn blob(&self) -> Option<LazyLoadBlob>
pub fn blob(&self) -> Option<LazyLoadBlob>
Get the LazyLoadBlob
of a Message
, if any. This function must be called
by the process that received the Message
before receiving another Message
!
The LazyLoadBlob
can only be consumed immediately after receiving a Message
.
Sourcepub fn capabilities(&self) -> &Vec<Capability>
pub fn capabilities(&self) -> &Vec<Capability>
Get the capabilities of a Message
.
Sourcepub fn is_request(&self) -> bool
pub fn is_request(&self) -> bool
Check if a Message
is a crate::Request
. Returns false
if it’s a crate::Response
.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
Source§fn 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
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnwindSafe for Message
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more