singbox_config 0.17.0

A library for serializing and deserliazing sing-box config files
Documentation
#[macro_export]
macro_rules! gen_enum {
    ($name:ident, $($arm:ident),*) => {
        #[derive(Debug, Serialize, Deserialize)]
        #[serde(rename_all="lowercase")]
        #[serde(tag="type")]
        pub enum $name {
            $($arm($arm),)*
            #[serde(skip)]
            None,
        }

        impl $name {
            pub fn get_tag(&self) -> Option<&String> {
                match self {
                    $($name::$arm(e) => Some(&e.tag),)*
                    $name::None => None,
                }
            }
        }
    }
}