Add place for struct and enum lifetime parameters
diff --git a/syntax/mod.rs b/syntax/mod.rs
index 57ed4fc..73952e1 100644
--- a/syntax/mod.rs
+++ b/syntax/mod.rs
@@ -95,6 +95,7 @@
pub visibility: Token![pub],
pub struct_token: Token![struct],
pub name: Pair,
+ pub generics: Lifetimes,
pub brace_token: Brace,
pub fields: Vec<Var>,
}
@@ -106,6 +107,7 @@
pub visibility: Token![pub],
pub enum_token: Token![enum],
pub name: Pair,
+ pub generics: Lifetimes,
pub brace_token: Brace,
pub variants: Vec<Variant>,
pub repr: Atom,
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 795a518..db46dc4 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -133,6 +133,11 @@
let visibility = visibility_pub(&item.vis, &item.ident);
let struct_token = item.struct_token;
let name = pair(namespace, &item.ident, cxx_name, rust_name);
+ let generics = Lifetimes {
+ lt_token: None,
+ lifetimes: Punctuated::new(),
+ gt_token: None,
+ };
let brace_token = named_fields.brace_token;
Ok(Api::Struct(Struct {
@@ -142,6 +147,7 @@
visibility,
struct_token,
name,
+ generics,
brace_token,
fields,
}))
@@ -207,6 +213,11 @@
let name = pair(namespace, &item.ident, cxx_name, rust_name);
let repr_ident = Ident::new(repr.as_ref(), Span::call_site());
let repr_type = Type::Ident(NamedType::new(repr_ident));
+ let generics = Lifetimes {
+ lt_token: None,
+ lifetimes: Punctuated::new(),
+ gt_token: None,
+ };
Ok(Api::Enum(Enum {
doc,
@@ -215,6 +226,7 @@
visibility,
enum_token,
name,
+ generics,
brace_token,
variants,
repr,