Rust

建構

Rust 專案應使用以下四種 GN 目標範本:

examples/rust 目錄包含使用這些目標的 Rust 套件範例,以及 Rust FIDL 範例

另請參閱:使用自訂 Rust 工具鍊建構 Fuchsia

Cargo.toml

您無法使用 Cargo 建構 Fuchsia Rust 目標,也就是說,您可以產生 Cargo.toml 檔案,以便與外部工具搭配使用。我們不保證這項功能可以正常運作。

自動產生的說明文件

取得目標的 Cargo.toml 後,請執行下列指令產生及瀏覽目標及其依附元件的 HTML 說明文件:

fx rustdoc path/from/fuchsia/root/to/target:label --open

測試

您可以使用 fxfx test {package name} 指令,在已連結的裝置上執行單元測試。如要瞭解如何新增及執行測試,請參閱「測試 Rust 程式碼」。

程序巨集

系統會在主機執行編譯巨集目標。因此,這些 Crate 無法取決於裝置專用的其他 Crate (例如 zircon)。

系統目前不支援負數測試,例如斷言巨集無法以特定錯誤進行編譯。

警告和錯誤

根據預設,我們的建構設定會將所有 Rust 警告變成錯誤。這項規定在開發期間可能會更嚴格,因此您可能要在本機電腦上看到警告訊息,然後讓 CQ 強制執行強制邊界。

deny_warnings GN 引數可讓您在開發環境中控管這個行為。 在 fx args 中設定 deny_warnings = false 或將 --args=deny_warnings=false 新增至 fx set 可讓您在本機進行開發,而不會遭警告封鎖。您可在結帳時將引數新增至 local/args.gn,這樣引數就會套用至所有建構,而不需每次在終端機中輸入引數。

樣式

我們目前沒有 Rust 的樣式指南,但請先執行 fx rustfmtfx format-code,再提交內容。我們大多使用 rustfmt 預設值,但有幾項自訂設定

Rust 慣用使用情形綜覽

如果您是 Rust 新手,或是想要有人審查變更,以驗證您使用 Rust 是否符合慣用做法,請將「Fuchsia Rust 審查人員」新增為 Gerrit 中 CL 的審查人員,並指派審查人員。

如有任何問題,請來信至 tq-rust-reviewers@google.com。

通訊管道

公開討論會在 rust-users@fuchsia.dev 郵寄清單中進行。

現有的 Fuchsia Rust 程式庫

更進一步