pub(crate) mod finalized;
pub(crate) mod multi_range_map;
pub(crate) mod range_map;
pub(crate) mod range_values;
pub(crate) mod shared_id_generator;
pub use openraft_rt::BoxAny;
pub use openraft_rt::BoxAsyncOnceMut;
pub use openraft_rt::BoxFuture;
pub use openraft_rt::BoxIterator;
pub use openraft_rt::BoxMaybeAsyncOnceMut;
pub use openraft_rt::BoxOnce;
pub use openraft_rt::BoxStream;
pub use openraft_rt::OptionalSend;
pub use openraft_rt::OptionalSync;
pub use serde_able::OptionalSerde;
#[cfg(not(feature = "serde"))]
mod serde_able {
pub trait OptionalSerde {}
impl<T> OptionalSerde for T {}
}
#[cfg(feature = "serde")]
mod serde_able {
pub trait OptionalSerde: serde::Serialize + for<'a> serde::Deserialize<'a> {}
impl<T> OptionalSerde for T where T: serde::Serialize + for<'a> serde::Deserialize<'a> {}
}
pub trait OptionalFeatures: OptionalSend + OptionalSync + OptionalSerde {}
impl<T> OptionalFeatures for T where T: OptionalSend + OptionalSync + OptionalSerde {}