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