Red Hat Training

A Red Hat training course is available for Red Hat Developer Tools

Chapter 3. rustfmt

The rustfmt tool provides automatic formatting of Rust source code.

Rust Toolset is distributed with rustfmt 0.3.8.

Important

Rust Toolset and rustfmt are available as a Technology Preview. See the Technology Preview Features Support Scope for more details.

Customers deploying Rust Toolset are encouraged to provide feedback to Red Hat.

3.1. Installing rustfmt

The rustfmt tool is provided by the rust-toolset-7-rustfmt-preview package. To install it:

# yum install rust-toolset-7-rustfmt-preview

3.2. Using rustfmt as a standalone tool

To format a rust source file and all its dependencies with the rustfmt tool:

$ scl enable rust-toolset-7 'rustfmt source-file'

Replace source-file with path to the source file.

By default, rustfmt modifies the affected files in place without displaying details or creating backups. To change the behavior, use the --write-mode value option. For further details see the help mesage of rustfmt:

$ scl enable rust-toolset-7 'rustfmt --help'

Additionally, rustfmt accepts standard input instead of a file and provides its output in standard output.

3.3. Using rustfmt with cargo

To format all source files in a cargo crate:

$ scl enable rust-toolset-7 'cargo fmt'

To change the rustfmt formatting options, create the configuration file rustfmt.toml in the project directory and supply the configuration there. For further details see the help message of rustfmt:

$ scl enable rust-toolset-7 'rustfmt --config-help'

3.4. Additional Resources

  • Help messages of rustfmt:

    $ scl enable rust-toolset-7 'rustfmt --help'
    $ scl enable rust-toolset-7 'rustfmt --config-help'
  • The file Configurations.md installed under /opt/rh/rust-toolset-7/root/usr/share/doc/rust-toolset-7-rustfmt-preview-0.3.8/Configurations.md