Декларації мосту на мові Rust

#[cxx::bridge] mod ffi { extern "Rust" { type MyType; // Непрозорий тип fn foo(&self); // Метод на `MyType` fn bar() -> Box<MyType>; // Вільна функція } } 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++. Створений заголовок має той самий шлях, що і вихідний файл Rust, який містить міст, за винятком розширення файлу .rs.h.