| Crates.io | rotalubat |
| lib.rs | rotalubat |
| version | 1.0.2 |
| created_at | 2026-01-21 19:34:40.287563+00 |
| updated_at | 2026-01-23 10:26:18.174327+00 |
| description | A derive macro for cycling through enum variants. |
| homepage | |
| repository | https://github.com/barafael/rotalubat |
| max_upload_size | |
| id | 2059971 |
| size | 26,288 |
A derive macro for cycling through enum variants.
use rotalubat::Rotalubat;
#[derive(Rotalubat, PartialEq, Debug)]
enum SettingsPage {
General,
Account,
Privacy,
}
fn main() {
let mut page = SettingsPage::General;
page.forward();
assert_eq!(page, SettingsPage::Account);
page.forward();
assert_eq!(page, SettingsPage::Privacy);
// wraps to first variant
page.forward();
assert_eq!(page, SettingsPage::General);
// wraps to last variant
page.backward();
assert_eq!(page, SettingsPage::Privacy);
}
Only unit enums are supported. Deriving Rotalubat to other data types will produce a compile error.
MIT or Apache-2.0