Rust: как запретить автоформат определенному куску кода

Есть несколько частей кода, которые ужасно форматированы автоформатом (скриншоты ниже). Это просто нечитабельный для меня код. Как я могу отключить форматирование для определенной части кода (чтобы сохранить формат, который я установил)?

До: до После: после


Ответы (1 шт):

Автор решения: Сергей

#[rustfmt::skip] позволяет пропустить «блок» кода при форматировании

Рассмотрим этот код:

fn add(a : i32, b : i32) -> i32 { a + b }
fn sub(a : i32, b : i32) -> i32 { a - b }

rustfmt отформатирует это так:

fn add(a: i32, b: i32) -> i32 {
    a + b
}
fn sub(a: i32, b: i32) -> i32 {
    a - b
}

Мы можем поместить #[rustfmt::skip] над каждой функцией, чтобы rustfmt игнорировал их форматирование:

#[rustfmt::skip]
fn add(a: i32, b: i32) -> i32 { a + b }

#[rustfmt::skip]
fn sub(a: i32, b: i32) -> i32 { a - b }

P.s. Также удобным решением может быть создание общего модуля с #[rustfmt::skip] как в примере ниже:

#[rustfmt::skip]
mod unformatted {
    pub fn add(a : i32, b : i32) -> i32 { a + b }
    pub fn sub(a : i32, b : i32) -> i32 { a - b }
}

use unformatted::*;

fn main() {
    dbg!(add(2, 3));
}

Данный ответ представляет собой перевод ответа на сходный вопрос на сайте stackoverflow.com

→ Ссылка