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