concision_core/macros/
toggle.rs

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