diff options
Diffstat (limited to 'database/src/lib.rs')
| -rw-r--r-- | database/src/lib.rs | 55 |
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) - } -} |