Error when deserializing untagged variant of enum
- Dominant language
- Rust
- Stars
- 1.4k
- Forks
- 162
- PR merge metrics
- No merged PRs in 30d
Description
#148 and #149 address when an entire enum is `#[serde(untagged)]`, but if just a single variant is untagged an error occurs.
The following code works fine for deserializing `B` but panics when deserializing `A`.
```Rust
use serde::{Serialize, Deserialize};
#[derive(Serialize, Deserialize)]
enum A {
#[serde(untagged)]
A {
a: u8
}
}
#[derive(Serialize, Deserialize)]
#[serde(untagged)]
enum B {
C(C)
}
#[derive(Serialize, Deserialize)]
enum C {
C
}
fn main() {
let data = rmp_serde::to_vec(&B::C(C::C)).unwrap();
rmp_serde::from_slice::(&data).unwrap();
let data = rmp_serde::to_vec(&A::A{a: 2}).unwrap();
rmp_serde::from_slice::(&data).unwrap();
}
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.