fastcomments_sdk/client/src/models/
query_predicate.rs1use crate::client::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct QueryPredicate {
16 #[serde(rename = "key")]
17 pub key: String,
18 #[serde(rename = "value")]
19 pub value: Box<models::QueryPredicateValue>,
20 #[serde(rename = "operator")]
21 pub operator: Operator,
22}
23
24impl QueryPredicate {
25 pub fn new(key: String, value: models::QueryPredicateValue, operator: Operator) -> QueryPredicate {
26 QueryPredicate {
27 key,
28 value: Box::new(value),
29 operator,
30 }
31 }
32}
33#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
35pub enum Operator {
36 #[serde(rename = "eq")]
37 Eq,
38 #[serde(rename = "not_eq")]
39 NotEq,
40 #[serde(rename = "greater_than")]
41 GreaterThan,
42 #[serde(rename = "less_than")]
43 LessThan,
44 #[serde(rename = "contains")]
45 Contains,
46}
47
48impl Default for Operator {
49 fn default() -> Operator {
50 Self::Eq
51 }
52}
53