pub struct SessionMessageEnvelope {
pub id: SessionMessageId,
pub source: SessionMessageSource,
pub target_session_id: String,
pub kind: SessionMessageKind,
pub body: SessionMessageBody,
pub created_at: DateTime<Utc>,
pub thread_id: Option<String>,
pub in_reply_to: Option<SessionMessageId>,
pub attempt: Option<u32>,
pub correlation_id: Option<String>,
}Expand description
Stable, dependency-light envelope persisted in each logical session inbox.
Fields§
§id: SessionMessageId§source: SessionMessageSource§target_session_id: String§kind: SessionMessageKind§body: SessionMessageBody§created_at: DateTime<Utc>§thread_id: Option<String>§in_reply_to: Option<SessionMessageId>§attempt: Option<u32>§correlation_id: Option<String>Implementations§
Source§impl SessionMessageEnvelope
impl SessionMessageEnvelope
pub fn user_input( target_session_id: impl Into<String>, text: impl Into<String>, ) -> SessionMessageEnvelope
pub fn validate(&self) -> Result<(), SessionMessageValidationError>
Sourcepub fn idempotency_semantics(&self) -> Value
pub fn idempotency_semantics(&self) -> Value
Canonical fields that define one logical delivery for idempotency and
transcript-proof purposes. Transport/retry metadata (created_at and
attempt) is deliberately excluded. Provider presentation is derived
by trusted runtime producers and is also excluded: the first durable
envelope wins presentation for an otherwise identical typed outcome.
Sourcepub fn to_provider_message(
&self,
) -> Result<Message, SessionMessageValidationError>
pub fn to_provider_message( &self, ) -> Result<Message, SessionMessageValidationError>
Translate the delivery envelope to a replayable provider-valid user message while retaining all correlation metadata.
Trait Implementations§
Source§impl Clone for SessionMessageEnvelope
impl Clone for SessionMessageEnvelope
Source§fn clone(&self) -> SessionMessageEnvelope
fn clone(&self) -> SessionMessageEnvelope
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SessionMessageEnvelope
impl Debug for SessionMessageEnvelope
Source§impl<'de> Deserialize<'de> for SessionMessageEnvelope
impl<'de> Deserialize<'de> for SessionMessageEnvelope
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionMessageEnvelope, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionMessageEnvelope, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SessionMessageEnvelope
impl PartialEq for SessionMessageEnvelope
Source§impl Serialize for SessionMessageEnvelope
impl Serialize for SessionMessageEnvelope
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,
Serialize this value into the given Serde serializer. Read more
impl StructuralPartialEq for SessionMessageEnvelope
Auto Trait Implementations§
impl Freeze for SessionMessageEnvelope
impl RefUnwindSafe for SessionMessageEnvelope
impl Send for SessionMessageEnvelope
impl Sync for SessionMessageEnvelope
impl Unpin for SessionMessageEnvelope
impl UnsafeUnpin for SessionMessageEnvelope
impl UnwindSafe for SessionMessageEnvelope
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