serde-rs / serde

Serialization framework for Rust
https://serde.rs/
Apache License 2.0
9.06k stars 767 forks source link

unexpected behavior (bug?) when using serde untagged with an enum to deserialize csv data #2715

Closed klebs6 closed 6 months ago

klebs6 commented 6 months ago

This issue is discussed in detail here: rust-csv#357.

klebs6 commented 6 months ago

fixed with this workaround (for example)

#[derive(Clone,Debug,Serialize, Deserialize)]
pub struct Transaction {
    #[serde(flatten)]
    inner: TransactionInner,
}

#[derive(Clone,Debug,Serialize, Deserialize)]
#[serde(untagged)]
enum TransactionInner {

    V1 {
        #[serde(rename = "Date")]
        #[serde(with = "naive_date_format")]
        date: NaiveDate,
    },
    V2 {
        #[serde(rename = "Posted Date")]
        #[serde(with = "naive_date_format")]
        posted_date: NaiveDate,
    },
}