cal_jambonz/verbs/
enqueue.rs

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