Declaraciones Bridge en Rust

#[cxx::bridge] mod ffi { extern "Rust" { type MyType; // Tipo opaco fn foo(&self); // Método en `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

  • Elementos declarados en los elementos de referencia `extern de “Rust” que se encuentran dentro del ámbito del módulo superior.
  • El generador de código CXX utiliza las secciones extern de "Rust" para generar un archivo de encabezado de C++ que contenga las declaraciones de C++ correspondientes. El encabezado generado tiene la misma ruta que el archivo de origen de Rust que contiene el patrón bridge, excepto con la extensión de archivo .rs.h.