G.FUD.03 Should refactor into customized struct or enum if there are too many bool type's function parameters

[Level] Advice

[Description]

Too many bool parameters is bad for memory and prone to issue errors. As to use typeinference and borrowchecker effectively, we should refactor into cutomized struct and enum in this case.

[Bad Case]


#![allow(unused)]
#![warn(clippy::fn_params_excessive_bools)]

fn main() {
// Not Good
fn f(is_rould: bool, is_hot: bool) { ... }
}

[Good Case]


#![allow(unused)]
#![warn(clippy::fn_params_excessive_bools)]

fn main() {
enum Shap {
    Round,
    Spiky,
}

enum Temperature {
    Hot,
    IceCold,
}

// Good
fn f(shape: Shape, temperature: Temperature) { ... }
}

[Lint Check]

lint nameClippy checkRustc checkLint GroupLevel
fn_params_excessive_boolsyesnopedanicallow

This lint corresponds to the following configuration of clippy.toml

# In order to limit maximum number of bool type's parameters, the default is 3.
max-fn-params-bools=3