pub struct MessageEnvelope { /* private fields */ }
Expand description
An envelope that carries a message destined to a remote actor. The envelope contains a serialized message along with its destination and sender.
Implementations§
Source§impl MessageEnvelope
impl MessageEnvelope
Sourcepub fn new(
sender: ActorId,
dest: PortId,
data: Serialized,
headers: Attrs,
) -> Self
pub fn new( sender: ActorId, dest: PortId, data: Serialized, headers: Attrs, ) -> Self
Create a new envelope with the provided sender, destination, and message.
Sourcepub fn serialize<T: Serialize + Named>(
source: ActorId,
dest: PortId,
value: &T,
headers: Attrs,
) -> Result<Self, Error>
pub fn serialize<T: Serialize + Named>( source: ActorId, dest: PortId, value: &T, headers: Attrs, ) -> Result<Self, Error>
Construct a new serialized value by serializing the provided T-typed value.
Sourcepub fn ttl(&self) -> u8
pub fn ttl(&self) -> u8
Returns the remaining time-to-live (TTL) for this message.
The TTL is decremented at each MailboxSender
hop. When it
reaches 0, the message is considered expired and is returned
to the sender as undeliverable.
Sourcepub fn set_ttl(self, ttl: u8) -> Self
pub fn set_ttl(self, ttl: u8) -> Self
Overrides the message’s time-to-live (TTL).
This replaces the current TTL value (normally initialized from
config::MESSAGE_TTL_DEFAULT
) with the provided ttl
. The
updated envelope is returned for chaining.
§Note
The TTL is decremented at each MailboxSender
hop, and when
it reaches 0 the message will be treated as undeliverable.
Sourcepub fn deserialized<T: DeserializeOwned + Named>(&self) -> Result<T, Error>
pub fn deserialized<T: DeserializeOwned + Named>(&self) -> Result<T, Error>
Deserialize the message in the envelope to the provided type T.
Sourcepub fn data(&self) -> &Serialized
pub fn data(&self) -> &Serialized
The serialized message.
Sourcepub fn set_error(&mut self, error: DeliveryError)
pub fn set_error(&mut self, error: DeliveryError)
Set a delivery error for the message. If errors are already set, append it to the existing errors.
Sourcepub fn undeliverable(
self,
error: DeliveryError,
return_handle: PortHandle<Undeliverable<MessageEnvelope>>,
)
pub fn undeliverable( self, error: DeliveryError, return_handle: PortHandle<Undeliverable<MessageEnvelope>>, )
The message has been determined to be undeliverable with the provided error. Mark the envelope with the error and return to sender.
Sourcepub fn errors(&self) -> &Vec<DeliveryError>
pub fn errors(&self) -> &Vec<DeliveryError>
Get the errors of why this message was undeliverable. Empty means this message was not determined as undeliverable.
Trait Implementations§
Source§impl Clone for MessageEnvelope
impl Clone for MessageEnvelope
Source§fn clone(&self) -> MessageEnvelope
fn clone(&self) -> MessageEnvelope
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for MessageEnvelope
impl Debug for MessageEnvelope
Source§impl<'de> Deserialize<'de> for MessageEnvelope
impl<'de> Deserialize<'de> for MessageEnvelope
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>,
Source§impl Display for MessageEnvelope
impl Display for MessageEnvelope
Source§impl Named for MessageEnvelope
impl Named for MessageEnvelope
Source§fn typename() -> &'static str
fn typename() -> &'static str
Source§fn typehash() -> u64
fn typehash() -> u64
Source§fn typeid() -> TypeId
fn typeid() -> TypeId
Source§fn port() -> u64
fn port() -> u64
Auto Trait Implementations§
impl !Freeze for MessageEnvelope
impl !RefUnwindSafe for MessageEnvelope
impl Send for MessageEnvelope
impl Sync for MessageEnvelope
impl Unpin for MessageEnvelope
impl !UnwindSafe for MessageEnvelope
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
Source§impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
impl<T> Checkpointable for Twhere
T: RemoteMessage + Clone,
Source§type State = T
type State = T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<A, M> Handler<IndexedErasedUnbound<M>> for A
impl<A, M> Handler<IndexedErasedUnbound<M>> for A
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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>
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