تعریف پل در Rust

#[cxx::bridge] mod ffi { extern "Rust" { type MyType; // Opaque type fn foo(&self); // Method on `MyType` fn bar() -> Box<MyType>; // Free function } } struct MyType(i32); impl MyType { fn foo(&self) { println!("{}", self.0); } } fn bar() -> Box<MyType> { Box::new(MyType(123)) }

Speaker Notes

  • موارد اعلام شده در موارد extern "Rust" reference که در محدوده ماژول والد قرار دارند.
  • تولیدکننده کد CXX از extern "Rust" خارجی شما برای تولید یک فایل هدر ++C حاوی اعلان‌های ++C مربوطه استفاده می‌کند. header تولید‌شده همان مسیری را دارد که فایل منبع Rust حاوی پل دارای آن است، به جز استفاده از پسوند فایل rs.h.