cargo fmtrustfmt の整形を微調整する方法について。

基礎知識

以下のコマンドは Rust のソースファイルを自動整形する。

cargo fmt

ワークスペースの全ソースファイルを整形。

rustfmt

ファイル名を指定して整形 (例: rustfmt main.rs)。

rustfmt.toml ファイル

整形ルールは rustfmt.toml ファイルで指定できる。

殆どの場合、デフォルトの整形ルールで問題ないため、このファイルは不要である。しかし、整形ルールをプロジェクトの好みに合わせたい場合、このファイルを導入すると細かな設定が行える。設定項目の詳細は『公式資料』を参照。

以下は rustfmt.toml ファイルの一例。


# 行の最大文字数を設定。
max_width = 100

# use 文のアルファベット順でのソートを禁止。
reorder_imports = false

# 波括弧は Allman スタイル。
brace_style = "AlwaysNextLine"

#[rustfmt::skip] 属性

ソースの一部のみを手動で整形したい場合、該当部 (ファイル、関数、ブロックまたは文) に rustfmt::skip 属性を付加するとよい。


fn main() {
    #[rustfmt::skip]
    let xor = |x, y| {
        if x && y { "F" } else
        if !x && !y { "F" } else
        { "T" }
    };

    println!("XOR(T, F) = {}", xor(true, false));
}