#[quick_impl]
Expand description
Quickly generate common methods and trait implementations on enums or structs.
§Enum example
use quick_impl::quick_impl;
#[quick_impl]
enum MyEnum {
#[quick_impl(pub const is, impl Default)]
Variant1,
#[quick_impl(pub as_ref, pub(crate) as_ref_mut, impl From)]
Variant2(i32),
}
let a = MyEnum::default();
assert!(a.is_variant1());
let mut b = MyEnum::from(42);
assert_eq!(*b.as_variant2().unwrap(), 42);
§Struct example
use quick_impl::quick_impl;
#[quick_impl(pub const new)]
struct MyStruct {
#[quick_impl(pub get)]
field1: i32,
#[quick_impl(pub get_mut, impl Into)]
field2: String,
}
let mut instance = MyStruct::new(1, "hello".to_string());
assert_eq!(*instance.get_field1(), 1);
instance.get_field2_mut().push_str(" world");
assert_eq!(&String::from(instance), "hello world");