FIDL 除冰板

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)。