1#[macro_export]
2macro_rules! ensure {
3 ($cond:expr, $e:expr) => {
4 if !($cond) {
5 return Err(core::convert::From::from($e));
6 }
7 };
8}
9
10
11#[macro_export]
12macro_rules! mod_use {
13 ($modname:ident) => {
14 mod $modname;
15 pub use $modname::*;
16 };
17}
18
19
20#[macro_export]
21macro_rules! cfg_mod_use {
22 ($feature:literal, $modname:ident) => {
23 #[cfg(feature = $feature)]
24 mod $modname;
25 #[cfg(feature = $feature)]
26 pub use $modname::*;
27 };
28}
29
30
31#[macro_export]
32macro_rules! cfg_mod_pub {
33 ($feature:literal, $modname:ident) => {
34 #[cfg(feature = $feature)]
35 pub mod $modname;
36 #[cfg(not(feature = $feature))]
37 mod $modname;
38 };
39}