INNER CODE UNIT · Rust
ffi_result
edwardkim/rhwp · bindings/Native/src/lib.rs:414
fn ffi_result<F>(f: F) -> *mut c_char
where
F: FnOnce() -> Result<String, String> + std::panic::UnwindSafe,
{
let json = match std::panic::catch_unwind(f) {
Ok(Ok(json)) => json,
Ok(Err(error)) => error_json(&error),
Err(_) => error_json("FFI 호출 중 panic이 발생했습니다."),
};
CString::new(json)
.unwrap_or_else(|_| {
CString::new(error_json("결과 문자열에 NUL 문자가 포함되었습니다.")).unwrap()
})
.into_raw()
}
fn file_stem(path: &Path) -> String {