#[derive(AsVariant)]
{
// Attributes available to this derive:
#[enumcapsulate]
}
Expand description
Derive macro generating an impl of the trait FromVariant<T>
.
It generates an impl for each of the enum’s
newtype variants, where Inner
is the variant’s field type
and Outer
is the enclosing enum’s type.
ⓘ
#[derive(Clone)]
struct Inner;
enum Outer {
Inner(Inner),
// ...
}
// The generated impls look something along these lines:
impl AsVariant<Inner> for Outer where Inner: Clone {
fn as_variant(&self) -> Option<Inner> {
match self {
Outer::Inner(inner) => Some(inner.clone()),
_ => None,
}
}
}
// ...