[−][src]Derive Macro rotate_enum::RotateEnum
#[derive(RotateEnum)]
This derive macro will implement next()
and prev()
methods that rotates
the variant to the annotated enum.
For code examples, see module-level docs.
Requirements
- It must be applied to an enum. Structs are not supported or won't make sense.
- Enums with any associated data are not supported.
Generated methods
For example, this macro will implement functions like below for
enum Direction
.
impl Direction { fn next(self) -> Self { match self { Self::Up => Self::Left, Self::Left => Self::Down, Self::Down => Self::Right, Self::Right => Self::Up, } } fn prev(self) -> Self { match self { Self::Up => Self::Right, Self::Left => Self::Up, Self::Down => Self::Left, Self::Right => Self::Down, } } }