concision_math/macros/toggle.rs
1/*
2 Appellation: toggle <module>
3 Contrib: FL03 <jo3mccain@icloud.com>
4*/
5
6#[macro_export]
7macro_rules! toggle {
8 ($vis:vis enum {$($name:ident),* $(,)?}) => {
9 $(toggle!(@impl $vis enum $name);)*
10 };
11
12 (@impl $vis:vis enum $name:ident) => {
13 #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
14 #[cfg_attr(feature = "serde", derive(serde_derive::Deserialize, serde_derive::Serialize))]
15 $vis enum $name {}
16 };
17}