anondb 0.1.1

Database abstraction over a generic KV
Documentation
mod collection;
mod index;
mod metadata;
mod query;

pub use collection::*;
pub use index::*;
use metadata::*;
pub use query::*;

#[cfg(test)]
mod test;

// re-exports
pub use anondb_kv::*;
pub use anondb_macros::AnonDB;
pub use anondb_macros::Document;

pub use anyhow;

pub trait Queryable {
    type DocumentQuery: Default;
    type DocumentPhantom;

    fn query() -> Self::DocumentQuery {
        Self::DocumentQuery::default()
    }

    /// Test if a document matches a query
    fn matches(&self, query: &Self::DocumentQuery) -> bool;
}

#[cfg(test)]
pub fn rand_utf8(len: usize) -> String {
    vec![char::default(); len]
        .into_iter()
        .map(|_| rand::random::<char>())
        .collect()
}