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§
Required Methods§
Sourcefn enqueue_request(
&mut self,
req: Request<Message, Self::Context>,
) -> impl Future<Output = Result<(), Self::Error>> + Send
fn enqueue_request( &mut self, req: Request<Message, Self::Context>, ) -> impl Future<Output = Result<(), Self::Error>> + Send
Enqueues a Request constructed with customizations
Sourcefn enqueue_raw_request(
&mut self,
req: Request<Self::Compact, 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
Enqueues a request without forcing the type
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".