29 lines
566 B
Rust
29 lines
566 B
Rust
#[cfg(feature = "std")]
|
|
macro_rules! try_lock {
|
|
($lock:expr) => {
|
|
try_lock!($lock, else return)
|
|
};
|
|
($lock:expr, else $els:expr) => {
|
|
if let ::core::result::Result::Ok(l) = $lock {
|
|
l
|
|
} else if std::thread::panicking() {
|
|
$els
|
|
} else {
|
|
panic!("lock poisoned")
|
|
}
|
|
};
|
|
}
|
|
|
|
macro_rules! feature {
|
|
(
|
|
#![$meta:meta]
|
|
$($item:item)*
|
|
) => {
|
|
$(
|
|
#[cfg($meta)]
|
|
#[cfg_attr(docsrs, doc(cfg($meta)))]
|
|
$item
|
|
)*
|
|
}
|
|
}
|