Rust Bridge Declarations

#[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 소스 파일과 동일한 경로를 갖습니다.