Skip to main content

Channel

Trait Channel 

Source
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§

Source

type ConsumeReceipt: ConsumeReceipt

Source

type PublishReceipt: PublishReceipt

Required Methods§

Source

fn publish( &self, msg: Message, ) -> impl Future<Output = Result<Self::PublishReceipt, PublishError>> + Send

Source

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.

Implementors§