use super::map_util::Filter;
pub trait IntoMaeFilter {
fn into_mae_filter(self) -> Filter;
}
impl IntoMaeFilter for i32 {
fn into_mae_filter(self) -> Filter {
Filter::Equals(self)
}
}
impl IntoMaeFilter for String {
fn into_mae_filter(self) -> Filter {
Filter::StringIs(self)
}
}
impl IntoMaeFilter for Option<i32> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => Filter::Equals(v),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for Option<String> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => Filter::StringIs(v),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for crate::repo::default::DomainStatus {
fn into_mae_filter(self) -> Filter {
let v = match self {
crate::repo::default::DomainStatus::Incomplete => "incomplete",
crate::repo::default::DomainStatus::Active => "active",
crate::repo::default::DomainStatus::Deleted => "deleted",
crate::repo::default::DomainStatus::Archived => "archived"
};
Filter::StringIs(v.to_string())
}
}
impl IntoMaeFilter for Option<crate::repo::default::DomainStatus> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => v.into_mae_filter(),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for serde_json::Value {
fn into_mae_filter(self) -> Filter {
Filter::StringIs(self.to_string())
}
}
impl IntoMaeFilter for Option<serde_json::Value> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => Filter::StringIs(v.to_string()),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for bool {
fn into_mae_filter(self) -> Filter {
Filter::Equals(if self { 1 } else { 0 })
}
}
impl IntoMaeFilter for Option<bool> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => v.into_mae_filter(),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for chrono::NaiveDate {
fn into_mae_filter(self) -> Filter {
Filter::StringIs(self.to_string())
}
}
impl IntoMaeFilter for Option<chrono::NaiveDate> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => v.into_mae_filter(),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for rust_decimal::Decimal {
fn into_mae_filter(self) -> Filter {
Filter::StringIs(self.to_string())
}
}
impl IntoMaeFilter for Option<rust_decimal::Decimal> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => v.into_mae_filter(),
None => Filter::IsNull
}
}
}
impl IntoMaeFilter for uuid::Uuid {
fn into_mae_filter(self) -> Filter {
Filter::StringIs(self.to_string())
}
}
impl IntoMaeFilter for Option<uuid::Uuid> {
fn into_mae_filter(self) -> Filter {
match self {
Some(v) => v.into_mae_filter(),
None => Filter::IsNull
}
}
}