apalis_core::mq

Trait MessageQueue

Source
pub trait MessageQueue<Message> {
    type Error;

    // Required 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;
    fn size(
        &mut self,
    ) -> impl Future<Output = Result<usize, Self::Error>> + Send;
}
Expand description

Represents a message queue that can be pushed and consumed.

Required Associated Types§

Source

type Error

The error produced by the queue

Required 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.

Source

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

Returns the current size of the queue.

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>