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", so this trait is not object safe.