cuendillar 0.1.0

Embedded persistent key–value storage engine (LSM-tree based)
Documentation
use uuid::Uuid;

use crate::database::{Entry, iterator::DatabaseIterator, memtable::errors::MemtableError};

pub mod btree_memtable;
pub mod errors;
pub mod hash_memtable;
pub mod manager;
#[cfg(test)]
mod tests;
pub mod vector_memtable;

pub trait Memtable: Send + Sync {
    fn get_id(&self) -> &Uuid;
    fn insert(&mut self, e: Entry, wal_offset: u64);
    fn find(&self, key: &[u8]) -> Result<Option<Entry<'_>>, MemtableError>;
    fn iter(&self, start_key: Option<&[u8]>, end_key: Option<&[u8]>) -> Box<dyn DatabaseIterator>;
    fn size(&self) -> u64;
    fn num_enteries(&self) -> u64;
    fn get_wal_offset(&self) -> u64;
}