Rust Bridge Declarations
1. #[cxx::bridge]
2. mod ffi {
3. extern "Rust" {
4. type MyType; // Opaque type
5. fn foo(&self); // Method on `MyType`
6. fn bar() -> Box<MyType>; // Free function
7. }
8. }
10. struct MyType(i32);
12. impl MyType {
13. fn foo(&self) {
14. println!("{}", self.0);
15. }
16. }
18. fn bar() -> Box<MyType> {
19. Box::new(MyType(123))
20. }
extern "Rust"中声明的内容引用了父级模块中作用域内的内容。- CXX 代码生成器使用
extern "Rust"部分生成包含相应 C++ 声明的 C++ 头文件。生成的头文件与包含桥接的 Rust 源文件的路径相同,但文件扩展名为 .rs.h。
