Skip to main content

Toggle

Derive Macro Toggle 

Source
#[derive(Toggle)]
Expand description

Adds a toggled() method that maps each enum variant to the next unit variant.

ยงExample

#[derive(Toggle)]
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
  }
}