Implemented skip_deserializing for enum

This commit is contained in:
Shing Lyu
2016-12-15 22:23:52 +08:00
parent 5e47c87ba0
commit 95ffca9bbe
3 changed files with 22 additions and 2 deletions
+2 -1
View File
@@ -496,6 +496,7 @@ fn deserialize_item_enum(
let variant_visitor = deserialize_field_visitor(
variants.iter()
.filter(|variant| !variant.attrs.skip_deserializing())
.map(|variant| variant.attrs.name().deserialize_name())
.collect(),
item_attrs,
@@ -518,7 +519,7 @@ fn deserialize_item_enum(
// Match arms to extract a variant from a string
let mut variant_arms = vec![];
for (i, variant) in variants.iter().enumerate() {
for (i, variant) in variants.iter().filter(|variant| !variant.attrs.skip_deserializing()).enumerate() {
let variant_name = aster::id(format!("__field{}", i));
let variant_name = quote!(__Field::#variant_name);