aboutsummaryrefslogtreecommitdiff
path: root/database/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'database/src/lib.rs')
-rw-r--r--database/src/lib.rs55
1 files changed, 7 insertions, 48 deletions
diff --git a/database/src/lib.rs b/database/src/lib.rs
index 2ecf3c6..ea12447 100644
--- a/database/src/lib.rs
+++ b/database/src/lib.rs
@@ -9,7 +9,7 @@ pub mod query_ser;
pub mod test_shared;
use anyhow::Result;
-use jellyobject::{ObjectBuffer, Path, Tag};
+use jellyobject::{ObjectBuffer, Path, Value};
pub type RowNum = u64;
pub type RowIter = Box<dyn Iterator<Item = Result<(RowNum, Vec<u8>)>>>;
@@ -33,8 +33,8 @@ pub trait Transaction {
}
#[derive(Default, Clone)]
-pub struct Query {
- pub filter: Filter,
+pub struct Query<'a> {
+ pub filter: Filter<'a>,
pub sort: Sort,
}
@@ -70,52 +70,11 @@ pub enum SortOrder {
}
#[derive(Debug, Clone, Default)]
-pub enum Filter {
+pub enum Filter<'a> {
#[default]
True,
- All(Vec<Filter>),
- Any(Vec<Filter>),
- Match(Path, Value),
+ All(Vec<Filter<'a>>),
+ Any(Vec<Filter<'a>>),
+ Match(Path, Value<'a>),
Has(Path),
}
-
-#[derive(Debug, Clone)]
-pub enum Value {
- Tag(Tag),
- U32(u32),
- U64(u64),
- I64(i64),
- String(String),
- Binary(Vec<u8>),
-}
-
-impl From<&str> for Value {
- fn from(value: &str) -> Self {
- Self::String(value.to_owned())
- }
-}
-impl From<String> for Value {
- fn from(value: String) -> Self {
- Self::String(value)
- }
-}
-impl From<u32> for Value {
- fn from(value: u32) -> Self {
- Self::U32(value)
- }
-}
-impl From<u64> for Value {
- fn from(value: u64) -> Self {
- Self::U64(value)
- }
-}
-impl From<i64> for Value {
- fn from(value: i64) -> Self {
- Self::I64(value)
- }
-}
-impl From<Tag> for Value {
- fn from(value: Tag) -> Self {
- Self::Tag(value)
- }
-}