cal_jambonz/verbs/
dequeue.rs1use 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