aboutsummaryrefslogtreecommitdiff
path: root/database/src/query_ser.rs
diff options
context:
space:
mode:
Diffstat (limited to 'database/src/query_ser.rs')
-rw-r--r--database/src/query_ser.rs27
1 files changed, 10 insertions, 17 deletions
diff --git a/database/src/query_ser.rs b/database/src/query_ser.rs
index de62a72..d51ef64 100644
--- a/database/src/query_ser.rs
+++ b/database/src/query_ser.rs
@@ -4,8 +4,7 @@
Copyright (C) 2026 metamuffin <metamuffin.org>
*/
-use crate::{Filter, MultiBehaviour, Query, Sort, SortOrder, Value};
-use jellyobject::Path;
+use crate::{Filter, MultiBehaviour, Query, Sort, SortOrder, Value, ValueSort};
impl Query {
pub fn show(&self) -> String {
@@ -40,9 +39,9 @@ impl Filter {
.join(" OR ")
),
Filter::Match(path, value) => {
- format!("{} = {}", show_path(path), show_value(value))
+ format!("{path} = {}", show_value(value))
}
- Filter::Has(path) => show_path(path),
+ Filter::Has(path) => format!("{path}"),
}
}
}
@@ -50,37 +49,31 @@ impl Sort {
pub fn show(&self) -> String {
match self {
Sort::None => "NONE".to_string(),
- Sort::Value(vs) => {
+ Sort::Value(ValueSort {
+ multi, order, path, ..
+ }) => {
format!(
- "{} BY {} {}",
- match vs.order {
+ "{} BY {} {path}",
+ match order {
SortOrder::Ascending => "ASCENDING",
SortOrder::Descending => "DESCENDING",
},
- match vs.multi {
+ match multi {
MultiBehaviour::Count => "COUNT",
MultiBehaviour::First => "FIRST",
MultiBehaviour::ForEach => "EACH",
MultiBehaviour::Max => "MAX",
MultiBehaviour::Min => "MIN",
},
- show_path(&vs.path),
)
}
Sort::TextSearch(path, value) => {
- format!("TEXT SEARCH {} = {value:?}", show_path(path),)
+ format!("TEXT SEARCH {path} = {value:?}")
}
}
}
}
-fn show_path(path: &Path) -> String {
- path.0
- .iter()
- .map(|s| str::from_utf8(&s.0.to_be_bytes()).unwrap().to_string())
- .collect::<Vec<_>>()
- .join(".")
-}
fn show_value(value: &Value) -> String {
match value {
Value::Tag(tag) => format!("{tag}"),