FIDL 是 Fuchsia 中結構化 IPC 的主要機制。透過 Rust 使用 FIDL 最簡單的方式,就是從 FIDL 程式庫產生「FIDL Crate」,然後從 Rust 程式庫或二進位檔匯入。
如要瞭解各種 FIDL 建構項目與 Rust 對等項目間的對應方式,請參閱 FIDL Rust 繫結;如需使用 Rust 繫結的範例,請參閱 FIDL Rust 教學課程。
建構操作說明
為 FIDL 程式庫定義 GN fidl
規則時,系統會自動在原始目標名稱下產生相對應的 FIDL Rust Crate,並在後面加上 _rust
。系統會自動解析其他 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
指令為 FIDL Crate 自動產生 HTML 格式的說明文件。例如:
fx rustdoc //src/tictactoe:games.tictactoe_rust --open
公開 Fuchsia 來源樹狀結構中的 FIDL Crate 會發布在 Fuchsia Rust API 參考資料中。
產生的 Rust 程式碼
如要手動檢查針對 FIDL Crate 產生的 Rust 程式碼,您可在 BUILD_DIR/fidling/gen
底下找到 Rust 來源檔案 (如需範例,請參閱產生的程式碼指南)。請注意,您必須先建構 FIDL Crate (例如使用 fx build
)。