Emit pins in macro expansion
diff --git a/macro/src/expand.rs b/macro/src/expand.rs
index 903585e..eaa7928 100644
--- a/macro/src/expand.rs
+++ b/macro/src/expand.rs
@@ -244,10 +244,15 @@
let doc = &efn.doc;
let decl = expand_cxx_function_decl(efn, types);
let receiver = efn.receiver.iter().map(|receiver| {
- let ampersand = receiver.ampersand;
- let mutability = receiver.mutability;
let var = receiver.var;
- quote!(#ampersand #mutability #var)
+ if receiver.pinned {
+ let ty = receiver.ty();
+ quote!(#var: #ty)
+ } else {
+ let ampersand = receiver.ampersand;
+ let mutability = receiver.mutability;
+ quote!(#ampersand #mutability #var)
+ }
});
let args = efn.args.iter().map(|arg| quote!(#arg));
let all_args = receiver.chain(args);