1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
use std::fmt;
use types::*;
use command;
use uuid::Uuid;
#[derive(Serialize, Deserialize, Default, Debug)]
#[serde(default)]
pub struct Label {
pub id : ID,
pub name : String,
pub color : Color,
pub item_order : isize,
pub is_deleted : IntBool,
pub is_favorite : IntBool,
}
impl command::Create for Label {
fn create(self) -> command::Command {
command::Command {
typ: "label_add".to_string(),
args: Box::new(
command::label::Create {
name: self.name,
color: self.color,
item_order: self.item_order,
is_favorite: self.is_favorite,
}
),
uuid: Uuid::new_v4(),
temp_id: Some(Uuid::new_v4()),
}
}
}
impl command::Update for Label {
fn update(self) -> command::Command {
command::Command {
typ: "label_update".to_string(),
args: Box::new(
command::label::Update {
name: self.name,
id: self.id,
color: self.color,
item_order: self.item_order,
is_favorite: self.is_favorite,
}
),
uuid: Uuid::new_v4(),
temp_id: None,
}
}
}
impl command::Delete for Label {
fn delete(self) -> command::Command {
command::Command {
typ: "label_delete".to_string(),
args: Box::new(
command::Identity {
ids: vec![self.id],
}
),
uuid: Uuid::new_v4(),
temp_id: None,
}
}
}