Skip to content

Commit 9bd52ec

Browse files
committed
Inline AdjacentlyTaggedEnumVariant::new
1 parent 5cdd82d commit 9bd52ec

File tree

2 files changed

+13
-17
lines changed

2 files changed

+13
-17
lines changed

serde/src/private/ser.rs

+3-13
Original file line numberDiff line numberDiff line change
@@ -1357,19 +1357,9 @@ where
13571357
}
13581358

13591359
pub struct AdjacentlyTaggedEnumVariant {
1360-
tag: &'static str,
1361-
variant_index: u32,
1362-
variant_name: &'static str,
1363-
}
1364-
1365-
impl AdjacentlyTaggedEnumVariant {
1366-
pub fn new(tag: &'static str, variant_index: u32, variant_name: &'static str) -> Self {
1367-
AdjacentlyTaggedEnumVariant {
1368-
tag,
1369-
variant_index,
1370-
variant_name,
1371-
}
1372-
}
1360+
pub tag: &'static str,
1361+
pub variant_index: u32,
1362+
pub variant_name: &'static str,
13731363
}
13741364

13751365
impl Serialize for AdjacentlyTaggedEnumVariant {

serde_derive/src/ser.rs

+10-4
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,13 @@ fn serialize_adjacently_tagged_variant(
648648
let this_type = &params.this_type;
649649
let type_name = cattrs.name().serialize_name();
650650
let variant_name = variant.attrs.name().serialize_name();
651-
let variant = quote!(&_serde::__private::ser::AdjacentlyTaggedEnumVariant::new(#tag, #variant_index, #variant_name));
651+
let serialize_variant = quote! {
652+
&_serde::__private::ser::AdjacentlyTaggedEnumVariant {
653+
tag: #tag,
654+
variant_index: #variant_index,
655+
variant_name: #variant_name,
656+
}
657+
};
652658

653659
let inner = Stmts(if let Some(path) = variant.attrs.serialize_with() {
654660
let ser = wrap_serialize_variant_with(params, path, variant);
@@ -662,7 +668,7 @@ fn serialize_adjacently_tagged_variant(
662668
let mut __struct = _serde::Serializer::serialize_struct(
663669
__serializer, #type_name, 1)?;
664670
_serde::ser::SerializeStruct::serialize_field(
665-
&mut __struct, #tag, #variant)?;
671+
&mut __struct, #tag, #serialize_variant)?;
666672
_serde::ser::SerializeStruct::end(__struct)
667673
};
668674
}
@@ -679,7 +685,7 @@ fn serialize_adjacently_tagged_variant(
679685
let mut __struct = _serde::Serializer::serialize_struct(
680686
__serializer, #type_name, 2)?;
681687
_serde::ser::SerializeStruct::serialize_field(
682-
&mut __struct, #tag, #variant)?;
688+
&mut __struct, #tag, #serialize_variant)?;
683689
#func(
684690
&mut __struct, #content, #field_expr)?;
685691
_serde::ser::SerializeStruct::end(__struct)
@@ -744,7 +750,7 @@ fn serialize_adjacently_tagged_variant(
744750
let mut __struct = _serde::Serializer::serialize_struct(
745751
__serializer, #type_name, 2)?;
746752
_serde::ser::SerializeStruct::serialize_field(
747-
&mut __struct, #tag, #variant)?;
753+
&mut __struct, #tag, #serialize_variant)?;
748754
_serde::ser::SerializeStruct::serialize_field(
749755
&mut __struct, #content, &__AdjacentlyTagged {
750756
data: (#(#fields_ident,)*),

0 commit comments

Comments
 (0)