pub trait Channel: Send + Sync {
type ConsumeReceipt: ConsumeReceipt;
type PublishReceipt: PublishReceipt;
// Required methods
fn publish(
&self,
msg: Message,
) -> impl Future<Output = Result<Self::PublishReceipt, PublishError>> + Send;
fn consume(
&self,
group: &str,
) -> impl Future<Output = Result<(Message, Self::ConsumeReceipt), ConsumeError>> + Send;
}Expand description
Messaging channel.
Consumer-group semantics: consumers sharing a group name compete for messages (point-to-point). Consumers with distinct group names each independently receive every message (pub-sub).
Required Associated Types§
type ConsumeReceipt: ConsumeReceipt
type PublishReceipt: PublishReceipt
Required Methods§
fn publish( &self, msg: Message, ) -> impl Future<Output = Result<Self::PublishReceipt, PublishError>> + Send
fn consume( &self, group: &str, ) -> impl Future<Output = Result<(Message, Self::ConsumeReceipt), ConsumeError>> + Send
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.