celers_kombu/queue_mode.rs
1//! Queue mode definitions.
2
3/// Queue mode
4///
5/// # Examples
6///
7/// ```
8/// use celers_kombu::QueueMode;
9///
10/// let fifo = QueueMode::Fifo;
11/// assert!(fifo.is_fifo());
12/// assert!(!fifo.is_priority());
13/// assert_eq!(fifo.to_string(), "FIFO");
14///
15/// let priority = QueueMode::Priority;
16/// assert!(priority.is_priority());
17/// assert!(!priority.is_fifo());
18/// assert_eq!(priority.to_string(), "Priority");
19/// ```
20#[derive(Debug, Clone, Copy, PartialEq, Eq)]
21pub enum QueueMode {
22 /// First-In-First-Out
23 Fifo,
24 /// Priority-based
25 Priority,
26}
27
28impl QueueMode {
29 /// Check if this is FIFO mode
30 pub fn is_fifo(&self) -> bool {
31 matches!(self, QueueMode::Fifo)
32 }
33
34 /// Check if this is Priority mode
35 pub fn is_priority(&self) -> bool {
36 matches!(self, QueueMode::Priority)
37 }
38}
39
40impl std::fmt::Display for QueueMode {
41 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
42 match self {
43 QueueMode::Fifo => write!(f, "FIFO"),
44 QueueMode::Priority => write!(f, "Priority"),
45 }
46 }
47}