建構
Rust 專案應使用以下四種 GN 目標範本:
rustc_library
會定義程式庫,並選用 單元測試目標。程式庫可由其他目標依附。rustc_binary
會定義執行檔,以及選用 單元測試目標。rustc_test
定義了僅限測試的目標。rustc_macro
會定義 程序巨集目標。
examples/rust 目錄提供了一些 Rust 範例 和 Rust FIDL 範例一樣,使用這些目標的套件。
另請參閱「使用自訂 Rust 工具鍊建構 Fuchsia」一文
Cargo.toml
Fuchsia Rust 目標並非以貨物建構而成。儘管如此 產生 Cargo.toml 檔案,以便與外部工具搭配使用。這個 不保證所有功能可正常運作
自動產生的說明文件
為目標取得 Cargo.toml 後,就可以產生和瀏覽 HTML 執行下列指令,瞭解目標及其依附元件:
fx rustdoc path/from/fuchsia/root/to/target:label --open
測試
您可以使用 fx
搭配 fx test
{package name}
指令,在已連結的裝置上執行單元測試。詳情請參閱「測試 Rust 程式碼」一文
以下為新增與執行測試的教學課程
程序巨集
程序巨集目標會在編譯期間在主機上執行。因此 無法依附其他僅適用於裝置上的其他 Crate,例如 zircon。
負測試,例如斷言巨集無法以特定的 錯誤,目前不支援。
警告和錯誤
根據預設,我們的建構設定會將所有 Rust 警告變成錯誤。這項規定可以是 以及本機電腦上的警告 讓 CQ 強制執行硬界線
deny_warnings
GN 引數可讓您在開發環境中控制這項行為。
在fx args
中設定「deny_warnings = false
」或將--args=deny_warnings=false
新增至
fx set
可讓您在本機執行開發作業,而不會遭到警告封鎖。你可以
將引數加入結帳畫面中的 local/args.gn
,即可套用
不必在終端機中輸入憑證,
就能進行所有建構作業
樣式
我們目前沒有 Rust 的樣式指南,但您應執行 fx rustfmt
或 fx format-code
後再提交。我們大多使用 rustfmt 預設值
有幾項自訂設定。
Rust 慣用用法審查
如果你是 Rust 新手,或想請人幫忙查看你的變更 確認你的 Rust 使用方式符合語言習慣,請新增「Fuchsia Rust Reviewers」 做為 Gerrit 中 CL 的審核者,並指派審查者。
如有任何問題,請傳送電子郵件至 tq-rust-reviewers@google.com。
通訊管道
透過 rust-users@fuchsia.dev 郵寄清單進行公開討論。