apple_search_ads/objects/
condition.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct Condition {
8 pub field: Box<str>,
9
10 pub operator: ConditionOperator,
11
12 pub values: Vec<Box<str>>,
13}
14impl Condition {
15 pub fn new(
16 field: impl AsRef<str>,
17 operator: ConditionOperator,
18 values: Vec<impl AsRef<str>>,
19 ) -> Self {
20 Self {
21 field: field.as_ref().into(),
22 operator,
23 values: values
24 .into_iter()
25 .map(|x| x.as_ref().into())
26 .collect::<Vec<_>>(),
27 }
28 }
29}
30
31#[derive(Serialize, Deserialize, Debug, Clone)]
32pub enum ConditionOperator {
33 #[allow(clippy::upper_case_acronyms)]
34 EQUALS,
35 #[allow(non_camel_case_types, clippy::upper_case_acronyms)]
36 GREATER_THAN,
37 #[allow(non_camel_case_types, clippy::upper_case_acronyms)]
38 LESS_THAN,
39 #[allow(clippy::upper_case_acronyms)]
40 IN,
41 #[allow(clippy::upper_case_acronyms)]
42 LIKE,
43 #[allow(clippy::upper_case_acronyms)]
44 STARTSWITH,
45 #[allow(clippy::upper_case_acronyms)]
46 CONTAINS,
47 #[allow(clippy::upper_case_acronyms)]
48 ENDSWITH,
49 #[allow(non_camel_case_types, clippy::upper_case_acronyms)]
50 NOT_EQUALS,
51 #[allow(clippy::upper_case_acronyms)]
52 IS,
53 #[allow(non_camel_case_types, clippy::upper_case_acronyms)]
54 CONTAINS_ANY,
55 #[allow(non_camel_case_types, clippy::upper_case_acronyms)]
56 CONTAINS_ALL,
57}