Skip to main content

amqp_manager/
ops.rs

1//! These are the structs used as arguments to execute the session's operations.
2
3use lapin::options::{
4    BasicCancelOptions, BasicConsumeOptions, BasicPublishOptions, ExchangeDeclareOptions, ExchangeDeleteOptions, QueueBindOptions,
5    QueueDeclareOptions, QueueDeleteOptions,
6};
7use lapin::types::FieldTable;
8use lapin::{BasicProperties, ExchangeKind};
9use std::fmt::Debug;
10
11#[derive(Clone, Debug, Default, PartialEq)]
12pub struct CreateExchange<'a> {
13    pub exchange_name: &'a str,
14    pub kind: ExchangeKind,
15    pub options: ExchangeDeclareOptions,
16    pub args: FieldTable,
17}
18
19#[derive(Clone, Debug, Default, PartialEq)]
20pub struct PublishToExchange<'a> {
21    pub exchange_name: &'a str,
22    pub routing_key: &'a str,
23    pub options: BasicPublishOptions,
24    pub payload: &'a [u8],
25    pub properties: BasicProperties,
26}
27
28#[derive(Clone, Debug, Default, PartialEq)]
29pub struct DeleteExchanges<'a> {
30    pub exchange_names: &'a [&'a str],
31    pub options: ExchangeDeleteOptions,
32}
33
34#[derive(Clone, Debug, Default, PartialEq)]
35pub struct CreateQueue<'a> {
36    pub queue_name: &'a str,
37    pub options: QueueDeclareOptions,
38    pub args: FieldTable,
39}
40
41#[derive(Clone, Debug, Default, PartialEq)]
42pub struct BindQueueToExchange<'a> {
43    pub queue_name: &'a str,
44    pub exchange_name: &'a str,
45    pub routing_key: &'a str,
46    pub options: QueueBindOptions,
47    pub args: FieldTable,
48}
49
50#[derive(Clone, Debug, Default, PartialEq)]
51pub struct PublishToRoutingKey<'a> {
52    pub routing_key: &'a str,
53    pub options: BasicPublishOptions,
54    pub payload: &'a [u8],
55    pub properties: BasicProperties,
56}
57
58#[derive(Clone, Debug, Default, PartialEq)]
59pub struct DeleteQueues<'a> {
60    pub queue_names: &'a [&'a str],
61    pub options: QueueDeleteOptions,
62}
63
64#[derive(Clone, Debug, Default, PartialEq)]
65pub struct CreateConsumer<'a> {
66    pub queue_name: &'a str,
67    pub consumer_name: &'a str,
68    pub options: BasicConsumeOptions,
69    pub args: FieldTable,
70}
71
72#[derive(Clone, Debug, Default, PartialEq)]
73pub struct CancelConsumers<'a> {
74    pub consumers_names: &'a [&'a str],
75    pub options: BasicCancelOptions,
76}