INNER CODE UNIT · Rust
read_utf8
edwardkim/rhwp · bindings/Native/src/lib.rs:401
fn read_utf8(ptr: *const c_char, name: &str) -> Result<String, String> {
if ptr.is_null() {
return Err(format!("{}가 null입니다.", name));
}
unsafe {
CStr::from_ptr(ptr)
.to_str()
.map(|s| s.to_string())
.map_err(|e| format!("{}는 유효한 UTF-8 문자열이어야 합니다: {}", name, e))
}
}
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) {