pub use atom_file::Data;
use std::hash::Hash;
use std::sync::Arc;
pub trait SmallFixed {
fn size() -> usize;
fn load(bytes: &[u8]) -> Self;
fn save(&self, bytes: &mut [u8]);
}
pub trait Key<T>: Hash
where
T: SmallFixed,
{
fn ok(&self, addr: T, ps: &mut PageSet) -> Option<(T, Value)>;
}
pub mod pageset;
pub use pageset::*;
pub mod hashmap;
pub use hashmap::*;
pub mod table;
pub use table::*;
pub mod varval;
pub use varval::*;
pub mod sys;
pub use sys::*;
pub mod datatype;
pub use datatype::*;
pub mod value;
pub use value::*;
mod pagetree;
use pagetree::*;
mod treevec;
use treevec::*;
mod bucket;
const PAGE_SIZE: u64 = 3952;
use pstd::localalloc::Local;
pub type LString = pstd::StringA<Local>;
pub type LVec<T> = pstd::VecA<T, Local>;
pub type LBox<T> = pstd::BoxA<T, Local>;
mod test;
#[cfg(test)]
fn tos(s: &[u8]) -> &str {
str::from_utf8(s).unwrap()
}