#[doc(hidden)]
#[cfg(feature = "rocks")]
#[macro_export]
macro_rules! cfg_if_rocks {
(@pat $i: pat) => {
$i
};
($($body:tt)*) => {
$($body)*
};
}
#[doc(hidden)]
#[cfg(not(feature = "rocks"))]
#[macro_export]
macro_rules! cfg_if_rocks {
(@pat $i: pat) => {
_
};
($($body:tt)*) => {
unreachable!()
};
}
#[doc(hidden)]
#[cfg(feature = "sled")]
#[macro_export]
macro_rules! cfg_if_sled {
(@pat $i: pat) => {
$i
};
($($body:tt)*) => {
$($body)*
};
}
#[doc(hidden)]
#[cfg(not(feature = "sled"))]
#[macro_export]
macro_rules! cfg_if_sled {
(@pat $i: pat) => {
_
};
($($body:tt)*) => {
unreachable!()
};
}
#[macro_export]
macro_rules! with_backend_type {
($type_value:expr, |$type_ident:ident| $body:expr) => {{
use $crate::backend::BackendType::*;
#[allow(unreachable_patterns)]
match $type_value {
$crate::cfg_if_sled!(@pat Sled) => {
$crate::cfg_if_sled! {
type $type_ident = $crate::backend::sled::Sled;
$body
}
}
$crate::cfg_if_rocks!(@pat Rocks) => {
$crate::cfg_if_rocks! {
type $type_ident = $crate::backend::rocks::Rocks;
$body
}
}
}
}};
}