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}