apidoc_attr/
serde.rs

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}