#[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))
}
extern "Rust"
์ ์ ์ธ๋ ํญ๋ชฉ์ ์์ ๋ชจ๋์ ๋ฒ์ ๋ด์ ์๋ ํญ๋ชฉ์ ์ฐธ์กฐํฉ๋๋ค.
- CXX ์ฝ๋ ์์ฑ๊ธฐ๋
extern "Rust"
์น์
์ ์ฌ์ฉํ์ฌ ์์ํ๋ C++ ์ ์ธ์ด ํฌํจ๋ C++ ํค๋ ํ์ผ์ ์์ฑํฉ๋๋ค. ์์ฑ๋ ํค๋๋ ํ์ผ ํ์ฅ์๊ฐ .rs.h์ธ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋ธ๋ฆฌ์ง๊ฐ ํฌํจ๋ Rust ์์ค ํ์ผ๊ณผ ๋์ผํ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ต๋๋ค.