#[derive(Toggle)]Expand description
Adds a toggled() method that maps each enum variant to the next unit variant.
ยงExample
#[derive(Debug, mkutils_macros::Toggle, PartialEq)]
enum MyEnum {
Foo,
Bar,
Baz(String),
}
// adds
// impl MyEnum {
// pub fn toggle(&self) -> Self {
// match self {
// Self::Foo => Self::Bar,
// Self::Bar => Self::Foo,
// Self::Baz(_string) => Self::Foo,
// }
// }
//
// pub fn toggle(&mut self) -> &mut Self {
// *self = self.toggled();
//
// self
// }
// }
// as can be seen in
std::assert_eq!(MyEnum::Foo.toggled(), MyEnum::Bar);
std::assert_eq!(MyEnum::Bar.toggled(), MyEnum::Foo);
std::assert_eq!(MyEnum::Baz(String::new()).toggled(), MyEnum::Foo);