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