錯誤處理

CXX 的 Result<T,E> 支援功能依賴 C++ 例外狀況,因此無法用於 Chromium。替代方案:

  • Result<T, E>T 部分可以是以下情形之一:

    • 可透過傳出參數傳回,例如透過 &mut T。也就是說,T 必須能跨越 FFI 界線傳遞,例如 T 必須符合下列條件:
      • 是基本型別 (例如 u32usize)
      • cxx 原生支援的型別 (就像 UniquePtr<T>),具有可在失敗情況下使用的適當預設值 (「不像」Box<T>)。
    • 在 Rust 端保留,並透過參照公開。當 T 是 Rust 型別,無法跨越 FFI 邊界傳遞,且無法儲存在 UniquePtr<T> 時,這就可能有必要。
  • Result<T, E>E 部分可以是以下情形之一:

    • 傳回為布林值 (例如 true 代表成功,false 代表失敗)
    • 理論上可保留錯誤詳細資料,但目前在實際情況中並不需要。