2022-10-05 22:35:28 +05:00
|
|
|
#![allow(dead_code)] // we do not read enum fields
|
2024-08-10 23:34:36 -07:00
|
|
|
|
2022-10-05 22:35:28 +05:00
|
|
|
use serde_derive::Deserialize;
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
pub struct Nested;
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
pub enum ExternallyTagged1 {
|
|
|
|
Tuple(f64, String),
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
pub enum ExternallyTagged2 {
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
Tuple(f64, String),
|
|
|
|
}
|
|
|
|
|
|
|
|
// Internally tagged enums cannot contain tuple variants so not tested here
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
#[serde(tag = "tag", content = "content")]
|
|
|
|
pub enum AdjacentlyTagged1 {
|
|
|
|
Tuple(f64, String),
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
#[serde(tag = "tag", content = "content")]
|
|
|
|
pub enum AdjacentlyTagged2 {
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
Tuple(f64, String),
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
#[serde(untagged)]
|
|
|
|
pub enum Untagged1 {
|
|
|
|
Tuple(f64, String),
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Deserialize)]
|
|
|
|
#[serde(untagged)]
|
|
|
|
pub enum Untagged2 {
|
|
|
|
Flatten {
|
|
|
|
#[serde(flatten)]
|
|
|
|
nested: Nested,
|
|
|
|
},
|
|
|
|
Tuple(f64, String),
|
|
|
|
}
|