#[cfg(feature = "core")]
use serde::{Deserialize, Serialize};
#[cfg(feature = "proc")]
use procmeta::prelude::*;
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum ParsedSerdeAttr {
Rename { rename: String },
RenameSpecial(SerdeRename),
RenameAll { rename_all: String },
RenameAllSpecial(SerdeRenameAll),
SkipSpecial(SerdeSkip),
Default(SerdeDefault),
Flatten(SerdeFlatten),
}
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum SerdeFlatten {
Flatten,
}
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum SerdeRename {
Rename {
serialize: Option<String>,
deserialize: Option<String>,
},
}
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum SerdeRenameAll {
Rename {
serialize: Option<String>,
deserialize: Option<String>,
},
}
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum SerdeSkip {
Skip,
SkipSerializing,
SkipDeserializing,
}
#[derive(Clone)]
#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
pub enum SerdeDefault {
Default,
}