let deserialized = bincode::deserialize::<EnumSet<$e>>(&serialized).unwrap();
assert_eq!(value, deserialized);
}
+
+ #[test]
+ #[cfg(feature = "serde")]
+ fn deserialize_all_test() {
+ let serialized = bincode::serialize(&(!0 as <$e as EnumSetType>::Repr)).unwrap();
+ let deserialized = bincode::deserialize::<EnumSet<$e>>(&serialized).unwrap();
+ assert_eq!(EnumSet::<$e>::all(), deserialized);
+ }
}
}
}
) -> #core::result::Result<::enumset::EnumSet<#name>, D::Error> {
use #serde::Deserialize;
#core::prelude::v1::Ok(::enumset::EnumSet {
- __enumset_underlying: <#name as ::enumset::EnumSetType>::Repr::deserialize(de)?,
+ __enumset_underlying:
+ <#name as ::enumset::EnumSetType>::Repr::deserialize(de)? & #all_variants,
})
}
}