use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct FieldValueClause {
#[serde(rename = "field")]
pub field: Box<models::JqlQueryField>,
#[serde(rename = "operator")]
pub operator: Operator,
#[serde(rename = "operand")]
pub operand: Box<models::JqlQueryClauseOperand>,
}
impl FieldValueClause {
pub fn new(field: models::JqlQueryField, operator: Operator, operand: models::JqlQueryClauseOperand) -> FieldValueClause {
FieldValueClause {
field: Box::new(field),
operator,
operand: Box::new(operand),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Operator {
#[serde(rename = "=")]
Equal,
#[serde(rename = "!=")]
ExclamationEqual,
#[serde(rename = ">")]
GreaterThan,
#[serde(rename = "<")]
LessThan,
#[serde(rename = ">=")]
GreaterThanEqual,
#[serde(rename = "<=")]
LessThanEqual,
#[serde(rename = "in")]
In,
#[serde(rename = "not in")]
NotIn,
#[serde(rename = "~")]
Tilde,
#[serde(rename = "~=")]
TildeEqual,
#[serde(rename = "is")]
Is,
#[serde(rename = "is not")]
IsNot,
}
impl Default for Operator {
fn default() -> Operator {
Self::Equal
}
}