From 3a81f654a9f49649fb6755b6e35649f0102a9572 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Thu, 19 Feb 2026 18:17:32 +0100 Subject: all idents as string; move value type; add cow to queries --- database/src/lib.rs | 55 +++++++---------------------------------------------- 1 file changed, 7 insertions(+), 48 deletions(-) (limited to 'database/src/lib.rs') 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)>>>; @@ -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), - Any(Vec), - Match(Path, Value), + All(Vec>), + Any(Vec>), + Match(Path, Value<'a>), Has(Path), } - -#[derive(Debug, Clone)] -pub enum Value { - Tag(Tag), - U32(u32), - U64(u64), - I64(i64), - String(String), - Binary(Vec), -} - -impl From<&str> for Value { - fn from(value: &str) -> Self { - Self::String(value.to_owned()) - } -} -impl From for Value { - fn from(value: String) -> Self { - Self::String(value) - } -} -impl From for Value { - fn from(value: u32) -> Self { - Self::U32(value) - } -} -impl From for Value { - fn from(value: u64) -> Self { - Self::U64(value) - } -} -impl From for Value { - fn from(value: i64) -> Self { - Self::I64(value) - } -} -impl From for Value { - fn from(value: Tag) -> Self { - Self::Tag(value) - } -} -- cgit v1.3