#[cxx::bridge]
mod ffi {
extern "Rust" {
fn fallible(depth: usize) -> Result<String>;
}
}
fn fallible(depth: usize) -> anyhow::Result<String> {
if depth == 0 {
return Err(anyhow::Error::msg("fallible1์ ๊น์ด > 0 ํ์"));
}
Ok("์๋ฃ!".into())
}
Result
๋ฅผ ๋ฐํํ๋ Rust ํจ์๋ C++ ์ธก์์ ์์ธ๋ก ๋ณํ๋ฉ๋๋ค.
- ๋ฐ์ํ๋ ์์ธ๋ ํญ์
rust::Error
ํ์
์ด๋ฉฐ ์ฃผ๋ก ์ค๋ฅ ๋ฉ์์ง ๋ฌธ์์ด์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋
ธ์ถํฉ๋๋ค. ์ค๋ฅ ๋ฉ์์ง๋ ์ค๋ฅ ํ์
์ Display
impl์์ ๊ฐ์ ธ์ต๋๋ค.
- Rust์์ C++๋ก ํจ๋์ด ํด์ ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ์ฆ์ ์ข
๋ฃ๋ฉ๋๋ค.