#![deny(missing_docs)]
mod db;
mod encoding;
mod error;
mod expiring_tree;
mod structured_tree;
pub use sled::{abort, Config, Db, IVec, TransactionError};
pub use self::{
db::DbExt,
encoding::Encoding,
error::{Error, Result},
structured_tree::CompareAndSwapError,
};
pub mod structured {
pub use crate::structured_tree::{
StructuredBatch as Batch, StructuredIter as Iter,
StructuredTransactionalTree as TransactionalTree, StructuredTree as Tree,
};
pub mod expiring {
use crate::expiring;
pub type Tree<V, E> = expiring::Tree<V, E, E>;
pub type TreeBuilder<V, E> = expiring::TreeBuilder<V, E, E>;
pub type Iter<'a, V, E> = expiring::Iter<'a, V, E, E>;
pub type Batch<V, E> = expiring::Batch<V, E>;
pub type TransactionalTree<'a, V, E> = expiring::TransactionalTree<'a, V, E, E>;
}
}
pub mod expiring {
pub use crate::expiring_tree::{
ExpiringBatch as Batch, ExpiringIter as Iter,
ExpiringTransactionalTree as TransactionalTree, ExpiringTree as Tree,
ExpiringTreeBuilder as TreeBuilder,
};
pub mod plain {
use sled::IVec;
pub use crate::encoding::PlainEncoding;
pub type Tree<E> = super::Tree<IVec, E, PlainEncoding>;
pub type TreeBuilder<E> = super::TreeBuilder<IVec, E, PlainEncoding>;
pub type Batch = super::Batch<IVec, PlainEncoding>;
pub type Iter<'a, E> = super::Iter<'a, IVec, E, PlainEncoding>;
pub type TransactionalTree<'a, E> = super::TransactionalTree<'a, IVec, E, PlainEncoding>;
}
}
#[cfg(feature = "bincode")]
pub mod bincode {
use crate::structured;
pub use crate::encoding::BincodeEncoding;
pub type Tree<V> = structured::Tree<V, BincodeEncoding>;
pub type Iter<V> = structured::Iter<V, BincodeEncoding>;
pub type Batch<V> = structured::Batch<V, BincodeEncoding>;
pub type TransactionalTree<'a, V> = structured::TransactionalTree<'a, V, BincodeEncoding>;
pub mod expiring {
use crate::expiring;
use super::BincodeEncoding;
pub type Tree<V> = expiring::Tree<V, BincodeEncoding, BincodeEncoding>;
pub type TreeBuilder<V> = expiring::TreeBuilder<V, BincodeEncoding, BincodeEncoding>;
pub type Iter<'a, V> = expiring::Iter<'a, V, BincodeEncoding, BincodeEncoding>;
pub type Batch<V> = expiring::Batch<V, BincodeEncoding>;
pub type TransactionalTree<'a, V> =
expiring::TransactionalTree<'a, V, BincodeEncoding, BincodeEncoding>;
}
}
#[cfg(feature = "cbor")]
pub mod cbor {
use crate::structured_tree::{
StructuredBatch, StructuredIter, StructuredTransactionalTree, StructuredTree,
};
pub use crate::encoding::CborEncoding;
pub type Tree<V> = StructuredTree<V, CborEncoding>;
pub type Iter<V> = StructuredIter<V, CborEncoding>;
pub type Batch<V> = StructuredBatch<V, CborEncoding>;
pub type TransactionalTree<'a, V> = StructuredTransactionalTree<'a, V, CborEncoding>;
pub mod expiring {
use crate::expiring;
use super::CborEncoding;
pub type Tree<V> = expiring::Tree<V, CborEncoding, CborEncoding>;
pub type TreeBuilder<V> = expiring::TreeBuilder<V, CborEncoding, CborEncoding>;
pub type Iter<'a, V> = expiring::Iter<'a, V, CborEncoding, CborEncoding>;
pub type Batch<V> = expiring::Batch<V, CborEncoding>;
pub type TransactionalTree<'a, V> =
expiring::TransactionalTree<'a, V, CborEncoding, CborEncoding>;
}
}
#[cfg(feature = "json")]
pub mod json {
use crate::structured_tree::{
StructuredBatch, StructuredIter, StructuredTransactionalTree, StructuredTree,
};
pub use crate::encoding::JsonEncoding;
pub type Tree<V> = StructuredTree<V, JsonEncoding>;
pub type Iter<V> = StructuredIter<V, JsonEncoding>;
pub type Batch<V> = StructuredBatch<V, JsonEncoding>;
pub type TransactionalTree<'a, V> = StructuredTransactionalTree<'a, V, JsonEncoding>;
pub mod expiring {
use crate::expiring;
use super::JsonEncoding;
pub type Tree<V> = expiring::Tree<V, JsonEncoding, JsonEncoding>;
pub type TreeBuilder<V> = expiring::TreeBuilder<V, JsonEncoding, JsonEncoding>;
pub type Iter<'a, V> = expiring::Iter<'a, V, JsonEncoding, JsonEncoding>;
pub type Batch<V> = expiring::Batch<V, JsonEncoding>;
pub type TransactionalTree<'a, V> =
expiring::TransactionalTree<'a, V, JsonEncoding, JsonEncoding>;
}
}