Implemented skip_deserializing for enum

This commit is contained in:
Shing Lyu committed 2016-12-16 20:29:21 +08:00
1 parent 5e47c87ba0
commit 95ffca9bbe
3 files changed
+22 -2

No files matched your search

+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);