#[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))
}
موارد اعلام شده در موارد extern "Rust" reference که در محدوده ماژول والد قرار دارند.
تولیدکننده کد CXX از extern "Rust" خارجی شما برای تولید یک فایل هدر ++C حاوی اعلانهای ++C مربوطه استفاده میکند. header تولیدشده همان مسیری را دارد که فایل منبع Rust حاوی پل دارای آن است، به جز استفاده از پسوند فایل rs.h.