From 0963121beb465756c19e7475e4e28c37b246f52b Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 9 Sep 2017 10:50:40 -0700 Subject: [PATCH] Support consolidated `with` attribute for variants --- serde_derive_internals/src/attr.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/serde_derive_internals/src/attr.rs b/serde_derive_internals/src/attr.rs index 2803da9d..454b8b59 100644 --- a/serde_derive_internals/src/attr.rs +++ b/serde_derive_internals/src/attr.rs @@ -573,6 +573,18 @@ impl Variant { other.set_true(); } + // Parse `#[serde(with = "...")]` + MetaItem(NameValue(ref name, ref lit)) if name == "with" => { + if let Ok(path) = parse_lit_into_path(cx, name.as_ref(), lit) { + let mut ser_path = path.clone(); + ser_path.segments.push("serialize".into()); + serialize_with.set(ser_path); + let mut de_path = path; + de_path.segments.push("deserialize".into()); + deserialize_with.set(de_path); + } + } + // Parse `#[serde(serialize_with = "...")]` MetaItem(NameValue(ref name, ref lit)) if name == "serialize_with" => { if let Ok(path) = parse_lit_into_path(cx, name.as_ref(), lit) {