FIDL 是 Fuchsia 內結構化 IPC 的主要機制。從 Rust 使用 FIDL 最簡單的方式,是從 FIDL 程式庫產生「FIDL Crate」,然後從 Rust 程式庫或二進位檔匯入。
請參閱 FIDL Rust 繫結,瞭解不同 FIDL 建構體如何對應至 Rust 等效項目,並參閱 FIDL Rust 教學課程,查看使用 Rust 繫結的範例。
建構指示
為 FIDL 程式庫定義 GN fidl 規則時,系統會自動在原始目標名稱後方附加 _rust,並在該名稱下產生對應的 FIDL Rust Crate。系統會自動解決其他 FIDL 程式庫的遞移依附元件。舉例來說,如果指定下列宣告:
# //src/tictactoe/BUILD.gn
fidl("games.tictactoe") { ... }
FIDL Crate 目標為
//src/tictactoe:games.tictactoe_rust。如要使用 FIDL Crate,請將目標新增至 Rust Crate 的 rustc_* 建構規則的 deps 欄位。例如:
rustc_binary("tictactoe") {
# ...
deps = ["//src/tictactoe:games.tictactoe_rust"]
}
Rust Crate 會命名為 fidl_games_tictactoe,現在可以匯入其中的項目:
use fidl_games_tictactoe::BOARD_SIZE;
在 Fuchsia 樹狀結構中,常用的 FIDL Crate 通常會別名為較短的名稱,以求簡潔,如下所示:
use fidl_fuchsia_io as fio;
use fidl_fuchsia_data as fdata;
產生的說明文件
您可以使用 fx rustdoc-link 指令,自動產生 FIDL Crate 的 HTML 格式文件。使用下列項目生成文件:
fx rustdoc-link //src/tictactoe:games.tictactoe_rust
使用瀏覽器開啟 docs/rust/doc 目錄 (位於根建構目錄中)。詳情請參閱 fx rustdoc-link --help。
公開 Fuchsia 來源樹狀結構中的 FIDL Crate 會發布在 Fuchsia Rust API 參考資料。
產生的 Rust 程式碼
如要手動檢查 FIDL Crate 產生的 Rust 程式碼,請前往 BUILD_DIR/fidling/gen 查看 Rust 原始碼檔案 (範例請參閱「產生的程式碼指南」)。請注意,FIDL Crate 必須先建構完成 (例如使用 fx build)。