rabbitmq_stream_protocol/
types.rs

1#[derive(Debug, PartialEq, Eq)]
2pub struct Header {
3    key: u16,
4    version: u16,
5}
6
7impl Header {
8    pub fn new(key: u16, version: u16) -> Self {
9        Self { key, version }
10    }
11
12    /// Get a reference to the request header's version.
13    pub fn version(&self) -> u16 {
14        self.version
15    }
16
17    /// Get a reference to the request header's key.
18    pub fn key(&self) -> u16 {
19        self.key
20    }
21}
22
23use crate::{message::Message, ResponseCode};
24
25#[cfg_attr(test, derive(fake::Dummy))]
26#[derive(Debug, PartialEq, Eq)]
27pub struct PublishedMessage {
28    pub(crate) publishing_id: u64,
29    pub(crate) message: Message,
30    #[cfg_attr(test, dummy(expr = "None"))]
31    pub(crate) filter_value: Option<String>,
32}
33
34impl PublishedMessage {
35    pub fn new(publishing_id: u64, message: Message, filter_value: Option<String>) -> Self {
36        Self {
37            publishing_id,
38            message,
39            filter_value,
40        }
41    }
42
43    /// Get a reference to the published message's publishing id.
44    pub fn publishing_id(&self) -> u64 {
45        self.publishing_id
46    }
47}
48
49#[cfg_attr(test, derive(fake::Dummy))]
50#[derive(Debug, PartialEq, Eq)]
51pub struct PublishingError {
52    pub publishing_id: u64,
53    pub error_code: ResponseCode,
54}
55
56impl PublishingError {
57    pub fn new(publishing_id: u64, error_code: ResponseCode) -> Self {
58        Self {
59            publishing_id,
60            error_code,
61        }
62    }
63}