onesignal_rust_api/models/
filter.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
15pub struct Filter {
16 #[serde(rename = "field")]
18 pub field: String,
19 #[serde(rename = "key", skip_serializing_if = "Option::is_none")]
21 pub key: Option<String>,
22 #[serde(rename = "value", skip_serializing_if = "Option::is_none")]
24 pub value: Option<String>,
25 #[serde(rename = "relation")]
27 pub relation: RelationType,
28}
29
30impl Filter {
31 pub fn new(field: String, relation: RelationType) -> Filter {
32 Filter {
33 field,
34 key: None,
35 value: None,
36 relation,
37 }
38 }
39}
40
41#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
43pub enum RelationType {
44 #[serde(rename = ">")]
45 Greater_Than,
46 #[serde(rename = "<")]
47 Less_Than,
48 #[serde(rename = "=")]
49 Equal,
50 #[serde(rename = "!=")]
51 Not_Equal,
52 #[serde(rename = "exists")]
53 Exists,
54 #[serde(rename = "not_exists")]
55 NotExists,
56 #[serde(rename = "time_elapsed_gt")]
57 TimeElapsedGt,
58 #[serde(rename = "time_elapsed_lt")]
59 TimeElapsedLt,
60}
61
62impl Default for RelationType {
63 fn default() -> RelationType {
64 Self::Greater_Than
65 }
66}
67