diff --git a/yaserde/tests/enum.rs b/yaserde/tests/enum.rs
index 95991bd..dd2e5fa 100644
--- a/yaserde/tests/enum.rs
+++ b/yaserde/tests/enum.rs
@@ -357,3 +357,39 @@ fn unnamed_enum() {
serialize_and_validate!(model, content);
deserialize_and_validate!(content, model, XmlStruct);
}
+
+#[test]
+fn tagged_enum() {
+ #[derive(Debug, PartialEq, YaSerialize, YaDeserialize, Default)]
+ #[yaserde(tag = "type")]
+ enum XmlEnum {
+ #[default]
+ #[yaserde(rename = "foo")]
+ Foo,
+ #[yaserde(rename = "bar")]
+ Bar,
+ }
+
+ #[derive(Debug, PartialEq, YaSerialize, YaDeserialize, Default)]
+ struct XmlStruct {
+ #[yaserde(rename = "foobar")]
+ foo_bar: XmlEnum,
+ }
+
+ let model = XmlEnum::Foo;
+ let content = "";
+ // serialize_and_validate!(model, content);
+ deserialize_and_validate!(content, model, XmlEnum);
+
+ let model = XmlEnum::Bar;
+ let content = "";
+ // serialize_and_validate!(model, content);
+ deserialize_and_validate!(content, model, XmlEnum);
+
+ let model = XmlStruct {
+ foo_bar: XmlEnum::Foo,
+ };
+ let content = "";
+ // serialize_and_validate!(model, content);
+ deserialize_and_validate!(content, model, XmlStruct);
+}
diff --git a/yaserde_derive/src/common/attribute.rs b/yaserde_derive/src/common/attribute.rs
index be4361f..bf5bcdb 100644
--- a/yaserde_derive/src/common/attribute.rs
+++ b/yaserde_derive/src/common/attribute.rs
@@ -12,6 +12,7 @@ pub struct YaSerdeAttribute {
pub namespaces: BTreeMap