Remove all names from Encoder
They aren't used anymore now that the json format has been removed
This commit is contained in:
parent
ede5ac251c
commit
5cd29225a5
6 changed files with 120 additions and 168 deletions
|
@ -140,23 +140,14 @@ fn encodable_body(
|
|||
|
||||
let encode_body = match s.variants() {
|
||||
[_] => {
|
||||
let mut field_idx = 0usize;
|
||||
let encode_inner = s.each_variant(|vi| {
|
||||
vi.bindings()
|
||||
.iter()
|
||||
.map(|binding| {
|
||||
let bind_ident = &binding.binding;
|
||||
let field_name = binding
|
||||
.ast()
|
||||
.ident
|
||||
.as_ref()
|
||||
.map_or_else(|| field_idx.to_string(), |i| i.to_string());
|
||||
let first = field_idx == 0;
|
||||
let result = quote! {
|
||||
match ::rustc_serialize::Encoder::emit_struct_field(
|
||||
__encoder,
|
||||
#field_name,
|
||||
#first,
|
||||
|__encoder|
|
||||
::rustc_serialize::Encodable::<#encoder_ty>::encode(#bind_ident, __encoder),
|
||||
) {
|
||||
|
@ -165,14 +156,12 @@ fn encodable_body(
|
|||
=> return ::std::result::Result::Err(__err),
|
||||
}
|
||||
};
|
||||
field_idx += 1;
|
||||
result
|
||||
})
|
||||
.collect::<TokenStream>()
|
||||
});
|
||||
let no_fields = field_idx == 0;
|
||||
quote! {
|
||||
::rustc_serialize::Encoder::emit_struct(__encoder, #no_fields, |__encoder| {
|
||||
::rustc_serialize::Encoder::emit_struct(__encoder, |__encoder| {
|
||||
::std::result::Result::Ok(match *self { #encode_inner })
|
||||
})
|
||||
}
|
||||
|
@ -180,19 +169,14 @@ fn encodable_body(
|
|||
_ => {
|
||||
let mut variant_idx = 0usize;
|
||||
let encode_inner = s.each_variant(|vi| {
|
||||
let variant_name = vi.ast().ident.to_string();
|
||||
let mut field_idx = 0usize;
|
||||
|
||||
let encode_fields: TokenStream = vi
|
||||
.bindings()
|
||||
.iter()
|
||||
.map(|binding| {
|
||||
let bind_ident = &binding.binding;
|
||||
let first = field_idx == 0;
|
||||
let result = quote! {
|
||||
match ::rustc_serialize::Encoder::emit_enum_variant_arg(
|
||||
__encoder,
|
||||
#first,
|
||||
|__encoder|
|
||||
::rustc_serialize::Encodable::<#encoder_ty>::encode(#bind_ident, __encoder),
|
||||
) {
|
||||
|
@ -201,18 +185,15 @@ fn encodable_body(
|
|||
=> return ::std::result::Result::Err(__err),
|
||||
}
|
||||
};
|
||||
field_idx += 1;
|
||||
result
|
||||
})
|
||||
.collect();
|
||||
|
||||
let result = if field_idx != 0 {
|
||||
let result = if !vi.bindings().is_empty() {
|
||||
quote! {
|
||||
::rustc_serialize::Encoder::emit_enum_variant(
|
||||
__encoder,
|
||||
#variant_name,
|
||||
#variant_idx,
|
||||
#field_idx,
|
||||
|__encoder| { ::std::result::Result::Ok({ #encode_fields }) }
|
||||
)
|
||||
}
|
||||
|
@ -220,7 +201,6 @@ fn encodable_body(
|
|||
quote! {
|
||||
::rustc_serialize::Encoder::emit_fieldless_enum_variant::<#variant_idx>(
|
||||
__encoder,
|
||||
#variant_name,
|
||||
)
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue