Rust のブリッジ宣言

#[cxx::bridge] mod ffi { extern "Rust" { type MyType; // オペーク型 fn foo(&self); // `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" 参照アイテムで宣言されたアイテム。
  • CXX コード ジェネレータは、extern "Rust" セクションを使用して、対応する C++ 宣言を含む C++ ヘッダー ファイルを生成します。生成されるヘッダーのパスは、rs.hというファイル拡張子部分を除き、ブリッジを含む Rust ソースファイルと同じになります。