Trait MessageQueue

Source
pub trait MessageQueue<Message: Send>: Backend<Request<Message, Self::Context>> {
    type Context: Default;
    type Error;
    type Compact;

    // Required methods
    fn enqueue_request(
        &mut self,
        req: Request<Message, Self::Context>,
    ) -> impl Future<Output = Result<(), Self::Error>> + Send;
    fn enqueue_raw_request(
        &mut self,
        req: Request<Self::Compact, Self::Context>,
    ) -> impl Future<Output = Result<(), Self::Error>> + Send;
    fn dequeue_request(
        &mut self,
    ) -> impl Future<Output = Result<Option<Request<Message, Self::Context>>, Self::Error>> + Send;
    fn size(
        &mut self,
    ) -> impl Future<Output = Result<usize, Self::Error>> + Send;

    // Provided methods
    fn enqueue(
        &mut self,
        message: Message,
    ) -> impl Future<Output = Result<(), Self::Error>> + Send { ... }
    fn dequeue(
        &mut self,
    ) -> impl Future<Output = Result<Option<Message>, Self::Error>> + Send { ... }
}
Expand description

Represents a message queue that can be pushed and consumed.

Required Associated Types§

Source

type Context: Default

This stores more data about the Message, provided by the backend

Source

type Error

The error produced by the queue

Source

type Compact

The format that the storage persists the jobs usually Vec<u8>

Required Methods§

Source

fn enqueue_request( &mut self, req: Request<Message, Self::Context>, ) -> impl Future<Output = Result<(), Self::Error>> + Send

Enqueues a Request constructed with customizations

Source

fn enqueue_raw_request( &mut self, req: Request<Self::Compact, Self::Context>, ) -> impl Future<Output = Result<(), Self::Error>> + Send

Enqueues a request without forcing the type

Source

fn dequeue_request( &mut self, ) -> impl Future<Output = Result<Option<Request<Message, Self::Context>>, Self::Error>> + Send

Attempts to dequeue a message from the queue. Returns None if the queue is empty.

Source

fn size(&mut self) -> impl Future<Output = Result<usize, Self::Error>> + Send

Returns the current size of the queue.

Provided Methods§

Source

fn enqueue( &mut self, message: Message, ) -> impl Future<Output = Result<(), Self::Error>> + Send

Enqueues a message to the queue.

Source

fn dequeue( &mut self, ) -> impl Future<Output = Result<Option<Message>, Self::Error>> + Send

Attempts to dequeue a message from the queue. Returns None if the queue is empty.

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§

Source§

impl<Message: Send + 'static + Sync> MessageQueue<Message> for MemoryStorage<Message>