Implement special case types in extern Rust argument position
diff --git a/gen/write.rs b/gen/write.rs
index 81f26b8..eb11470 100644
--- a/gen/write.rs
+++ b/gen/write.rs
@@ -308,6 +308,11 @@
                 write!(out, "&");
             }
             write!(out, "{}", arg.ident);
+            match arg.ty {
+                Type::RustBox(_) => write!(out, ".into_raw()"),
+                Type::UniquePtr(_) => write!(out, ".release()"),
+                _ => {}
+            }
         }
         if indirect_return {
             if !efn.args.is_empty() {