Parse cxx_name/rust_name attrs on all syntax tree nodes holding Pair
diff --git a/syntax/parse.rs b/syntax/parse.rs
index 20f79ec..9c766ff 100644
--- a/syntax/parse.rs
+++ b/syntax/parse.rs
@@ -58,6 +58,8 @@
let mut doc = Doc::new();
let mut derives = Vec::new();
let mut namespace = namespace.clone();
+ let mut cxx_name = None;
+ let mut rust_name = None;
attrs::parse(
cx,
&item.attrs,
@@ -65,6 +67,8 @@
doc: Some(&mut doc),
derives: Some(&mut derives),
namespace: Some(&mut namespace),
+ cxx_name: Some(&mut cxx_name),
+ rust_name: Some(&mut rust_name),
..Default::default()
},
);
@@ -103,7 +107,7 @@
}
let struct_token = item.struct_token;
- let name = Pair::new(namespace, item.ident.clone(), item.ident);
+ let name = pair(namespace, &item.ident, cxx_name, rust_name);
let brace_token = named_fields.brace_token;
Ok(Api::Struct(Struct {
@@ -121,6 +125,8 @@
let mut derives = Vec::new();
let mut repr = None;
let mut namespace = namespace.clone();
+ let mut cxx_name = None;
+ let mut rust_name = None;
attrs::parse(
cx,
&item.attrs,
@@ -129,6 +135,8 @@
derives: Some(&mut derives),
repr: Some(&mut repr),
namespace: Some(&mut namespace),
+ cxx_name: Some(&mut cxx_name),
+ rust_name: Some(&mut rust_name),
..Default::default()
},
);
@@ -189,7 +197,7 @@
}
}
- let name = Pair::new(namespace, item.ident.clone(), item.ident);
+ 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(RustName::new(repr_ident));
@@ -335,6 +343,8 @@
let mut doc = Doc::new();
let mut derives = Vec::new();
let mut namespace = namespace.clone();
+ let mut cxx_name = None;
+ let mut rust_name = None;
attrs::parse(
cx,
&foreign_type.attrs,
@@ -342,13 +352,14 @@
doc: Some(&mut doc),
derives: Some(&mut derives),
namespace: Some(&mut namespace),
+ cxx_name: Some(&mut cxx_name),
+ rust_name: Some(&mut rust_name),
..Default::default()
},
);
let type_token = foreign_type.type_token;
- let ident = foreign_type.ident.clone();
- let name = Pair::new(namespace, ident.clone(), ident);
+ let name = pair(namespace, &foreign_type.ident, cxx_name, rust_name);
let colon_token = None;
let bounds = Vec::new();
let semi_token = foreign_type.semi_token;
@@ -574,6 +585,8 @@
let mut doc = Doc::new();
let mut derives = Vec::new();
let mut namespace = namespace.clone();
+ let mut cxx_name = None;
+ let mut rust_name = None;
attrs::parse(
cx,
&attrs,
@@ -581,6 +594,8 @@
doc: Some(&mut doc),
derives: Some(&mut derives),
namespace: Some(&mut namespace),
+ cxx_name: Some(&mut cxx_name),
+ rust_name: Some(&mut rust_name),
..Default::default()
},
);
@@ -591,7 +606,7 @@
return Err(Error::new_spanned(span, msg));
}
- let name = Pair::new(namespace, ident.clone(), ident);
+ let name = pair(namespace, &ident, cxx_name, rust_name);
Ok(Api::TypeAlias(TypeAlias {
doc,
@@ -648,6 +663,8 @@
let mut doc = Doc::new();
let mut derives = Vec::new();
let mut namespace = namespace.clone();
+ let mut cxx_name = None;
+ let mut rust_name = None;
attrs::parse(
cx,
&attrs,
@@ -655,11 +672,13 @@
doc: Some(&mut doc),
derives: Some(&mut derives),
namespace: Some(&mut namespace),
+ cxx_name: Some(&mut cxx_name),
+ rust_name: Some(&mut rust_name),
..Default::default()
},
);
- let name = Pair::new(namespace, ident.clone(), ident);
+ let name = pair(namespace, &ident, cxx_name, rust_name);
let colon_token = Some(colon_token);
Ok(match lang {