[][src]Derive Macro is_macro::Is

#[derive(Is)]

A proc macro to generate methods like is_varaiant / expect_variant.

Example


use is_macro::Is;
#[derive(Debug, Is)]
pub enum Enum<T> {
    A,
    B(T),
    C(Option<T>),
}

// Rust's type inference cannot handle this.
assert!(Enum::<()>::A.is_a());

assert_eq!(Enum::B(String::from("foo")).expect_b(), String::from("foo"));