FIDL Rust crate

FIDL 是 Fuchsia 中结构化 IPC 的主要机制。最简单 从 Rust 使用 FIDL 的方法是生成“FIDL crate”FIDL 库, 然后从 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,请执行以下操作: 将目标添加到deps rustc_* 构建规则 Rust crate。例如:

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;

生成的文档

HTML 格式的文档可以自动 使用 fx rustdoc 命令为 FIDL crate 生成的内容。例如:

fx rustdoc //src/tictactoe:games.tictactoe_rust --open

公共 Fuchsia 源代码树中的 FIDL crate 发布在 Fuchsia Rust API 参考文档

生成的 Rust 代码

如需手动检查为 FIDL crate 生成的 Rust 代码,Rust 源文件位于 BUILD_DIR/fidling/gen 下(请参阅 如需查看示例,请参阅生成的代码指南)。请注意, 必须先构建 FIDL crate(例如,使用 fx build)。