enum-bitset-derive 0.2.1

Proc macros for the enum-bitset macro
Documentation
use proc_macro2::TokenStream as TokenStream2;
use syn::{Path, parse_str};

use crate::derive::config::EnumBitsetConfig;

mod array;
mod map;

pub struct SerdeConfig {
    pub ser: bool,
    pub de: bool,
    pub serde_crate: Path,
    pub mode: SerdeMode,
}

pub enum SerdeMode {
    Array,
    Map,
}

impl Default for SerdeConfig {
    fn default() -> Self {
        SerdeConfig {
            ser: true,
            de: true,
            serde_crate: parse_str("::serde").expect("::serde is a valid path"),
            mode: SerdeMode::Array,
        }
    }
}

#[allow(dead_code)]
impl EnumBitsetConfig {
    #[cfg(feature = "serde")]
    pub fn impl_serde(&self) -> TokenStream2 {
        match self.serde.mode {
            SerdeMode::Array => self.impl_serde_list(),
            SerdeMode::Map => self.impl_serde_map(),
        }
    }
}