melib/search: fix some search criteria in Query type
parent
6bf1756de8
commit
c5ecaceae1
|
@ -589,7 +589,7 @@ impl From<crate::search::Query> for Filter<EmailFilterCondition, EmailObject> {
|
||||||
let mut ret = Filter::Condition(EmailFilterCondition::new().into());
|
let mut ret = Filter::Condition(EmailFilterCondition::new().into());
|
||||||
fn rec(q: &crate::search::Query, f: &mut Filter<EmailFilterCondition, EmailObject>) {
|
fn rec(q: &crate::search::Query, f: &mut Filter<EmailFilterCondition, EmailObject>) {
|
||||||
use crate::{
|
use crate::{
|
||||||
datetime::{timestamp_to_string, RFC3339_FMT},
|
datetime::{formats::RFC3339_DATE, timestamp_to_string},
|
||||||
search::Query::*,
|
search::Query::*,
|
||||||
};
|
};
|
||||||
match q {
|
match q {
|
||||||
|
@ -617,26 +617,26 @@ impl From<crate::search::Query> for Filter<EmailFilterCondition, EmailObject> {
|
||||||
Before(t) => {
|
Before(t) => {
|
||||||
*f = Filter::Condition(
|
*f = Filter::Condition(
|
||||||
EmailFilterCondition::new()
|
EmailFilterCondition::new()
|
||||||
.before(timestamp_to_string(*t, Some(RFC3339_FMT), true))
|
.before(timestamp_to_string(*t, Some(RFC3339_DATE), true))
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
After(t) => {
|
After(t) => {
|
||||||
*f = Filter::Condition(
|
*f = Filter::Condition(
|
||||||
EmailFilterCondition::new()
|
EmailFilterCondition::new()
|
||||||
.after(timestamp_to_string(*t, Some(RFC3339_FMT), true))
|
.after(timestamp_to_string(*t, Some(RFC3339_DATE), true))
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
Between(a, b) => {
|
Between(a, b) => {
|
||||||
*f = Filter::Condition(
|
*f = Filter::Condition(
|
||||||
EmailFilterCondition::new()
|
EmailFilterCondition::new()
|
||||||
.after(timestamp_to_string(*a, Some(RFC3339_FMT), true))
|
.after(timestamp_to_string(*a, Some(RFC3339_DATE), true))
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
*f &= Filter::Condition(
|
*f &= Filter::Condition(
|
||||||
EmailFilterCondition::new()
|
EmailFilterCondition::new()
|
||||||
.before(timestamp_to_string(*b, Some(RFC3339_FMT), true))
|
.before(timestamp_to_string(*b, Some(RFC3339_DATE), true))
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -738,6 +738,18 @@ impl From<crate::search::Query> for Filter<EmailFilterCondition, EmailObject> {
|
||||||
rec(q, &mut qhs);
|
rec(q, &mut qhs);
|
||||||
*f = !qhs;
|
*f = !qhs;
|
||||||
}
|
}
|
||||||
|
Answered => {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
AnsweredBy { .. } => {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
Larger { .. } => {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
|
Smaller { .. } => {
|
||||||
|
// TODO
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rec(&val, &mut ret);
|
rec(&val, &mut ret);
|
||||||
|
|
Loading…
Reference in New Issue