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}