onesignal_rust_api/models/
filter.rs1#[derive(Clone, Debug, PartialEq, Default, Serialize, Deserialize)]
14pub struct Filter {
15 #[serde(rename = "field", skip_serializing_if = "Option::is_none")]
17 pub field: Option<String>,
18 #[serde(rename = "key", skip_serializing_if = "Option::is_none")]
20 pub key: Option<String>,
21 #[serde(rename = "value", skip_serializing_if = "Option::is_none")]
23 pub value: Option<String>,
24 #[serde(rename = "hours_ago", skip_serializing_if = "Option::is_none")]
26 pub hours_ago: Option<String>,
27 #[serde(rename = "radius", skip_serializing_if = "Option::is_none")]
29 pub radius: Option<f32>,
30 #[serde(rename = "lat", skip_serializing_if = "Option::is_none")]
32 pub lat: Option<f32>,
33 #[serde(rename = "long", skip_serializing_if = "Option::is_none")]
35 pub long: Option<f32>,
36 #[serde(rename = "relation", skip_serializing_if = "Option::is_none")]
38 pub relation: Option<RelationType>,
39}
40
41impl Filter {
42 pub fn new() -> Filter {
43 Filter {
44 field: None,
45 key: None,
46 value: None,
47 hours_ago: None,
48 radius: None,
49 lat: None,
50 long: None,
51 relation: None,
52 }
53 }
54}
55
56#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
58pub enum RelationType {
59 #[serde(rename = ">")]
60 Greater_Than,
61 #[serde(rename = "<")]
62 Less_Than,
63 #[serde(rename = "=")]
64 Equal,
65 #[serde(rename = "!=")]
66 Not_Equal,
67 #[serde(rename = "exists")]
68 Exists,
69 #[serde(rename = "not_exists")]
70 NotExists,
71 #[serde(rename = "time_elapsed_gt")]
72 TimeElapsedGt,
73 #[serde(rename = "time_elapsed_lt")]
74 TimeElapsedLt,
75 #[serde(rename = "in_array")]
76 InArray,
77 #[serde(rename = "not_in_array")]
78 NotInArray,
79}
80
81impl Default for RelationType {
82 fn default() -> RelationType {
83 Self::Greater_Than
84 }
85}
86