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 update_sender(&mut self, sender: ActorId)
pub fn update_sender(&mut self, sender: ActorId)
Change the sender on the envelope in case it was set incorrectly. This should only be used by CommActor since it is forwarding from another sender.
Sourcepub fn set_return_undeliverable(&mut self, return_undeliverable: bool)
pub fn set_return_undeliverable(&mut self, return_undeliverable: bool)
Set to true if you want this message to be returned to sender if it cannot reach dest. This is the default. Set to false if you want the message to be dropped instead.
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