1#[cfg(feature = "core")]
2use serde::{Deserialize, Serialize};
3
4#[cfg(feature = "proc")]
5use procmeta::prelude::*;
6
7#[derive(Clone)]
8#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
9#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
10pub enum ParsedSerdeAttr {
11 #[cfg_attr(feature = "proc", name("serde"))]
12 Rename { rename: String },
13
14 #[cfg_attr(feature = "proc", name("serde"))]
15 RenameSpecial(SerdeRename),
16
17 #[cfg_attr(feature = "proc", name("serde"))]
18 RenameAll { rename_all: String },
19
20 #[cfg_attr(feature = "proc", name("serde"))]
21 RenameAllSpecial(SerdeRenameAll),
22
23 #[cfg_attr(feature = "proc", name("serde"))]
24 SkipSpecial(SerdeSkip),
25
26 #[cfg_attr(feature = "proc", name("serde"))]
27 Default(SerdeDefault),
28
29 #[cfg_attr(feature = "proc", name("serde"))]
30 Flatten(SerdeFlatten),
31}
32
33#[derive(Clone)]
34#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
35#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
36pub enum SerdeFlatten {
37 Flatten,
38}
39
40#[derive(Clone)]
41#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
42#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
43pub enum SerdeRename {
44 Rename {
45 serialize: Option<String>,
46 deserialize: Option<String>,
47 },
48}
49
50#[derive(Clone)]
51#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
52#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
53pub enum SerdeRenameAll {
54 Rename {
55 serialize: Option<String>,
56 deserialize: Option<String>,
57 },
58}
59
60#[derive(Clone)]
61#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
62#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
63pub enum SerdeSkip {
64 Skip,
65
66 SkipSerializing,
67
68 SkipDeserializing,
69}
70
71#[derive(Clone)]
72#[cfg_attr(feature = "core", derive(Debug, Serialize, Deserialize, PartialEq, Eq))]
73#[cfg_attr(feature = "proc", derive(GetTokenStream, MetaParser))]
74pub enum SerdeDefault {
75 Default,
76}