pub trait QueueClient: Send + Sync {
// Required methods
fn send_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn send_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn complete_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn abandon_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn dead_letter_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
reason: String,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn accept_session<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionClient>, QueueError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn provider_type(&self) -> ProviderType;
fn supports_sessions(&self) -> bool;
fn supports_batching(&self) -> bool;
}Expand description
Main interface for queue operations across all providers
Required Methods§
Sourcefn send_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<MessageId, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Send single message to queue
Sourcefn send_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn send_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
messages: Vec<Message>,
) -> Pin<Box<dyn Future<Output = Result<Vec<MessageId>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Send multiple messages in batch (if supported)
Sourcefn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn receive_message<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Option<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Receive single message from queue
Sourcefn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn receive_messages<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
max_messages: u32,
timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<Vec<ReceivedMessage>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Receive multiple messages from queue
Sourcefn complete_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn complete_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Mark message as successfully processed
Sourcefn abandon_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn abandon_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Return message to queue for retry
Sourcefn dead_letter_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
reason: String,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn dead_letter_message<'life0, 'async_trait>(
&'life0 self,
receipt: ReceiptHandle,
reason: String,
) -> Pin<Box<dyn Future<Output = Result<(), QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send message to dead letter queue
Sourcefn accept_session<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionClient>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn accept_session<'life0, 'life1, 'async_trait>(
&'life0 self,
queue: &'life1 QueueName,
session_id: Option<SessionId>,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn SessionClient>, QueueError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Accept session for ordered processing
Sourcefn provider_type(&self) -> ProviderType
fn provider_type(&self) -> ProviderType
Get provider type
Sourcefn supports_sessions(&self) -> bool
fn supports_sessions(&self) -> bool
Check if provider supports sessions
Sourcefn supports_batching(&self) -> bool
fn supports_batching(&self) -> bool
Check if provider supports batch operations