Handle derives on shared enums
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 17b290a..744963b 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -85,6 +85,7 @@
pub struct Enum {
pub doc: Doc,
+ pub derives: Vec<Derive>,
pub enum_token: Token![enum],
pub name: Pair,
pub brace_token: Brace,
diff --git a/syntax/parse.rs b/syntax/parse.rs
index f1a330c..a009e19 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -126,6 +126,7 @@
}
let mut doc = Doc::new();
+ let mut derives = Vec::new();
let mut repr = None;
let mut namespace = namespace.clone();
attrs::parse(
@@ -133,6 +134,7 @@
&item.attrs,
attrs::Parser {
doc: Some(&mut doc),
+ derives: Some(&mut derives),
repr: Some(&mut repr),
namespace: Some(&mut namespace),
..Default::default()
@@ -188,6 +190,7 @@
Ok(Api::Enum(Enum {
doc,
+ derives,
enum_token,
name: Pair::new(namespace, item.ident),
brace_token,