Skip to main content

Bus

Trait Bus 

Source
pub trait Bus: Send + Sync {
    // Required methods
    fn send(
        &self,
        name: &str,
        payload: Vec<u8>,
    ) -> impl Future<Output = Result<(), TransportError>> + Send;
    fn publish(
        &self,
        name: &str,
        payload: Vec<u8>,
    ) -> impl Future<Output = Result<(), TransportError>> + Send;
    fn send_message(
        &self,
        message: Message,
    ) -> impl Future<Output = Result<(), TransportError>> + Send;
    fn publish_message(
        &self,
        message: Message,
    ) -> impl Future<Output = Result<(), TransportError>> + Send;
}
Expand description

Produce side of the bus — uniform across every transport.

Required Methods§

Source

fn send( &self, name: &str, payload: Vec<u8>, ) -> impl Future<Output = Result<(), TransportError>> + Send

Send a point-to-point command (1:1, competing consumers).

Source

fn publish( &self, name: &str, payload: Vec<u8>, ) -> impl Future<Output = Result<(), TransportError>> + Send

Publish a fan-out event (1:N).

Source

fn send_message( &self, message: Message, ) -> impl Future<Output = Result<(), TransportError>> + Send

Send a fully-formed command message (explicit id/metadata/content-type).

Source

fn publish_message( &self, message: Message, ) -> impl Future<Output = Result<(), TransportError>> + Send

Publish a fully-formed event message.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§