Fix span placement on shared structs
diff --git a/macro/src/expand.rs b/macro/src/expand.rs
index 1944642..8ba765a 100644
--- a/macro/src/expand.rs
+++ b/macro/src/expand.rs
@@ -163,13 +163,20 @@
let mut derives = None;
let derived_traits = derive::expand_struct(strct, &mut derives);
+ let span = ident.span();
+ let visibility = strct.visibility;
+ let struct_token = strct.struct_token;
+ let struct_def = quote_spanned! {span=>
+ #visibility #struct_token #ident {
+ #(#fields,)*
+ }
+ };
+
quote! {
#doc
#derives
#[repr(C)]
- pub struct #ident {
- #(#fields,)*
- }
+ #struct_def
unsafe impl ::cxx::ExternType for #ident {
type Id = #type_id;