pub struct AgentMessage {
pub id: Uuid,
pub msg_type: MessageType,
pub sender: AgentEndpoint,
pub receivers: Vec<AgentEndpoint>,
pub payload: MessagePayload,
pub correlation_id: Option<Uuid>,
pub timestamp: DateTime<Utc>,
pub ttl: Duration,
pub delivery_mode: DeliveryMode,
}Expand description
Message envelope exchanged between collaborating agents.
Fields§
§id: UuidUnique message identifier.
msg_type: MessageTypeDelivery semantic of the message.
sender: AgentEndpointSending endpoint.
receivers: Vec<AgentEndpoint>Intended receiving endpoints.
payload: MessagePayloadMessage body.
correlation_id: Option<Uuid>Correlation identifier used to tie responses to requests.
timestamp: DateTime<Utc>Creation timestamp.
ttl: DurationTime-to-live before the message should be discarded.
delivery_mode: DeliveryModeDelivery guarantees requested for the transport.
Implementations§
Source§impl AgentMessage
impl AgentMessage
Sourcepub fn new(
sender: AgentEndpoint,
receivers: Vec<AgentEndpoint>,
payload: MessagePayload,
) -> Self
pub fn new( sender: AgentEndpoint, receivers: Vec<AgentEndpoint>, payload: MessagePayload, ) -> Self
Creates a request message addressed to one or more receivers.
Sourcepub fn response_to(original: &AgentMessage, payload: MessagePayload) -> Self
pub fn response_to(original: &AgentMessage, payload: MessagePayload) -> Self
Builds a response message for a prior request.
Sourcepub fn publish(sender: AgentEndpoint, payload: MessagePayload) -> Self
pub fn publish(sender: AgentEndpoint, payload: MessagePayload) -> Self
Builds a broadcast-style publish message.
Trait Implementations§
Source§impl Clone for AgentMessage
impl Clone for AgentMessage
Source§fn clone(&self) -> AgentMessage
fn clone(&self) -> AgentMessage
Returns a duplicate of the value. Read more
1.0.0 · 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 AgentMessage
impl Debug for AgentMessage
Source§impl<'de> Deserialize<'de> for AgentMessage
impl<'de> Deserialize<'de> for AgentMessage
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 AgentMessage
impl RefUnwindSafe for AgentMessage
impl Send for AgentMessage
impl Sync for AgentMessage
impl Unpin for AgentMessage
impl UnsafeUnpin for AgentMessage
impl UnwindSafe for AgentMessage
Blanket Implementations§
Source§impl<T> AnyExt for T
impl<T> AnyExt for T
Source§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
Attempts to downcast this to
T behind referenceSource§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
Attempts to downcast this to
T behind mutable referenceSource§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
Attempts to downcast this to
T behind Rc pointerSource§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
Attempts to downcast this to
T behind Arc pointerSource§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, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request