#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, allow(unused_attributes))]
#![deny(missing_docs)]
#![forbid(unsafe_code)]
#![allow(clippy::type_complexity)]
use std::{borrow::Borrow, hash::BuildHasher, ops::RangeBounds, sync::Arc};
use async_txn::{error::TransactionError, AsyncRtm, AsyncTm, AsyncWtm, HashCm, HashCmOptions};
pub mod equivalent;
pub mod comparable;
pub use skipdb_core::{
iter::*,
range::*,
rev_iter::*,
types::{Ref, ValueRef},
};
use skipdb_core::{AsSkipCore, Database, SkipCore};
mod read;
pub use read::*;
pub use async_txn::{AsyncSpawner, BTreePwm, Detach};
#[cfg(feature = "smol")]
#[cfg_attr(docsrs, doc(cfg(feature = "smol")))]
pub use async_txn::SmolSpawner;
#[cfg(feature = "tokio")]
#[cfg_attr(docsrs, doc(cfg(feature = "tokio")))]
pub use async_txn::TokioSpawner;
#[cfg(feature = "async-std")]
#[cfg_attr(docsrs, doc(cfg(feature = "async-std")))]
pub use async_txn::AsyncStdSpawner;
#[cfg(feature = "wasm")]
#[cfg_attr(docsrs, doc(cfg(feature = "wasm")))]
pub use async_txn::WasmSpawner;