macro_rules! impl_from_variant {
($name:ident, $enum:ident) => {
impl_from_variant!($name, $enum, $name);
};
($struct:path, $enum:ident, $variant:ident) => {
impl From<$struct> for $enum {
fn from(v: $struct) -> Self {
$enum::$variant(v)
}
}
};
}
macro_rules! ensure {
($cond:expr, $e:expr) => {
if !($cond) {
return Err($e.into());
}
};
}
macro_rules! bail {
($e:expr) => {
return Err($e.into());
};
}