# Rustfmt configuration
# https://github.com/rust-lang/rustfmt/blob/HEAD/Configurations.md

# Rustfmt cannot format long lines inside macros, but this option detects this.
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3391)
error_on_line_overflow = true

# Override the default formatting style.
# See https://internals.rust-lang.org/t/running-rustfmt-on-rust-lang-rust-and-other-rust-lang-repositories/8732/81.
use_small_heuristics = "Max"
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3370)
overflow_delimited_expr = true
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/4991).
imports_granularity = "Crate"
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/5083).
group_imports = "StdExternalCrate"
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/5081).
hex_literal_case = "Upper"

# Apply rustfmt to more places.
# This is unstable (tracking issue: https://github.com/rust-lang/rustfmt/issues/3348).
format_code_in_doc_comments = true

# Automatically fix deprecated style.
use_field_init_shorthand = true
use_try_shorthand = true

# Set the default settings again to always apply the proper formatting without
# being affected by the editor settings.
edition = "2021"
style_edition = "2024"
hard_tabs = false
newline_style = "Unix"
tab_spaces = 4
