はじめに
現在、RustプロジェクトをCI/CDできるよう色々いじって楽しんでます。
その中で、Rustで以下の記述(main.rs)に対してrustfmtを行ったら警告が出ました。
mod lib; fn main() { let args: Vec<String> = std::env::args().collect(); let num: u32 = args[1].clone().parse().unwrap(); lib::run(num); }
上の記述で何が警告になったか分からなかった上、「rustfmtって自動で整形してくれるんじゃなかったっけ?」となり、全然rustfmtを理解してなかったことに気づかされたので警告が出た原因とrustfmtの機能について調べ記事にしました。
rustfmtの使い方
cargo fmt
これが基本の使い方です。このコマンドを実行するとワークスペース内のファイルに対して整形を実行します
cargo fmt -- --check
--checkオプションをつけると、整形を行わずに警告を表示するだけになります。
(なので自動で整形してくれなかったのはこれが原因でした)
Note
cargoのオプションと区別するため、
--checkの前に--をつけます。
何に警告を出されていたのか
さて、上で出したコード、警告が出たのですが、その時に下記のメッセージがでました。
Diff in \\?\C:\tomo_archive\workdesk\00_github_rust_try_cd\src\main.rs at line 6:
lib::run(num);
}
+
なんのことだ?と思い、自動で整形させるようにし、その違いを見てみたところ、、、
なんと、、、
ファイルの最後の行が空白で終わっておらず、}の行で終わっていたことが原因でした。
改行が足りてないという警告だったんですね