mirror of
https://github.com/lifegpc/msg-tool.git
synced 2026-06-06 21:08:48 +08:00
17 lines
450 B
Rust
17 lines
450 B
Rust
//! Macros Utilities
|
|
|
|
#[macro_export]
|
|
/// A macro likes `try!` but returns `Option<Result<T, E>>`.
|
|
macro_rules! try_option {
|
|
($expr:expr $(,)?) => {
|
|
match $expr {
|
|
std::result::Result::Ok(val) => val,
|
|
std::result::Result::Err(err) => {
|
|
return std::option::Option::Some(std::result::Result::Err(
|
|
std::convert::From::from(err),
|
|
));
|
|
}
|
|
}
|
|
};
|
|
}
|