-
Notifications
You must be signed in to change notification settings - Fork 9
Open
Labels
bugSomething isn't workingSomething isn't working
Description
previous repo issue: dtolnay/serde-yaml#344
playground link: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=5149fbeb995a06e94ecb7e4508ca3b0c
And I have test it via serde_yaml_ng::from_value::<EnumTy>::(&value)
, it report the same error too.
The sample enum could be:
#[derive(Debug, Clone, Serialize, Deserialize, Default, PartialEq)]
pub enum ProfileItemType {
#[serde(rename = "remote")]
Remote,
#[serde(rename = "local")]
#[default]
Local,
#[serde(rename = "script")]
Script(ScriptType),
#[serde(rename = "merge")]
Merge,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default, Eq, PartialEq, Hash)]
pub enum ScriptType {
#[default]
#[serde(rename = "javascript")]
JavaScript,
#[serde(rename = "lua")]
Lua,
}
#[derive(Default, Debug, Clone, Deserialize, Serialize, Builder, BuilderUpdate)]
pub struct ProfileShared {
/// profile item type
/// enum value: remote | local | script | merge
#[serde(rename = "type")]
pub r#type: ProfileItemType,
}
#[derive(Default, Delegate, Debug, Clone, Deserialize, Serialize, Builder, BuilderUpdate)]
pub struct MergeProfile {
#[serde(flatten)]
pub shared: ProfileShared, // <-- This would be failed when deserialization
}
Besides the #[serde(flatten)]
usage, Just pass a Value::TaggedValue
to serde_yaml::from_value
always failed.
Any ideas could be shared here? Thank you.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working