1 use serde_derive::Deserialize; 2 3 #[derive(Deserialize)] 4 pub struct Nested; 5 6 #[derive(Deserialize)] 7 pub enum ExternallyTagged { 8 Flatten { 9 #[serde(flatten)] 10 nested: Nested, 11 string: &'static str, 12 }, 13 } 14 15 #[derive(Deserialize)] 16 #[serde(tag = "tag")] 17 pub enum InternallyTagged { 18 Flatten { 19 #[serde(flatten)] 20 nested: Nested, 21 string: &'static str, 22 }, 23 } 24 25 #[derive(Deserialize)] 26 #[serde(tag = "tag", content = "content")] 27 pub enum AdjacentlyTagged { 28 Flatten { 29 #[serde(flatten)] 30 nested: Nested, 31 string: &'static str, 32 }, 33 } 34 35 #[derive(Deserialize)] 36 #[serde(untagged)] 37 pub enum UntaggedWorkaround { 38 Flatten { 39 #[serde(flatten)] 40 nested: Nested, 41 string: &'static str, 42 }, 43 } 44