cal_jambonz/verbs/
dequeue.rs

1use crate::verbs::verb::Verb;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone)]
5    #[serde(rename_all = "camelCase")]
6    pub struct Dequeue {
7      
8        pub name: String,
9     
10        #[serde(skip_serializing_if = "Option::is_none")]
11        pub action_hook: Option<String>,
12      
13        #[serde(skip_serializing_if = "Option::is_none")]
14        pub beep: Option<bool>,
15      
16        #[serde(skip_serializing_if = "Option::is_none")]
17        pub timeout: Option<u8>,
18    }
19
20    impl Into<Verb> for Dequeue {
21        fn into(self) -> Verb {
22            Verb::Dequeue(self)
23        }
24    }
25
26    impl Into<Vec<Verb>> for Dequeue {
27        fn into(self) -> Vec<Verb> {
28            vec![self.into()]
29        }
30    }
31
32    impl Dequeue {
33        pub fn new(name: String) -> Dequeue {
34            Dequeue {
35                name: name,
36                action_hook: None,
37                beep: None,
38                timeout: None,
39            }
40        }
41
42        pub fn action_hook(&mut self, action: Option<String>) -> &mut Dequeue {
43            self.action_hook = action;
44            self
45        }
46
47        pub fn beep(&mut self, beep: Option<bool>) -> &mut Dequeue {
48            self.beep = beep;
49            self
50        }
51
52        pub fn timeout(&mut self, timeout: Option<u8>) -> &mut Dequeue {
53            self.timeout = timeout;
54            self
55        }
56    }
57