Attribute Macro quick_impl_all

Source
#[quick_impl_all]
Expand description

Quickly generate common methods and trait implementations on enums or structs on all the variants or fields.

quick_impl_all can be combined with quick_impl in any order.

§Enum example

use quick_impl::quick_impl_all;

#[quick_impl_all(pub const is)]
enum MyEnum {
    Variant1,
    #[quick_impl(pub as_ref, impl From)]
    Variant2(i32),
}

let a = MyEnum::Variant1;
assert!(a.is_variant1());

let mut b = MyEnum::from(42);
assert!(b.is_variant2());

§Struct example

use quick_impl::quick_impl;

#[quick_impl(pub const new)]
#[quick_impl_all(pub get = "{}", pub get_mut = "{}_mut")]
struct MyStruct {
    field1: i32,

    #[quick_impl(impl Into)]
    field2: String,
}

let mut instance = MyStruct::new(1, "hello".to_string());
assert_eq!(*instance.field1(), 1);
instance.field2_mut().push_str(" world");
assert_eq!(&String::from(instance), "hello world");