Рубрики
Uncategorized

Ржавчина и скрытый грузлиппи

Clippy — это «коллекция линтов, чтобы поймать общие ошибки и улучшить ваш код ржавчины». 💪 Но для некоторых … Теги от ржавчины, DevOps, Github, Ci.

Clippy — это «коллекция линтов, чтобы поймать общие ошибки и улучшить ваш код ржавчины». 💪 Но по какой-то причине Clippy выглядит как скрытое сокровище внутри груз команда. Я нашел это случайным, проверяя код Ороген орудие труда.

Как я могу получить Clippy?

Теперь Clippy внутри грузовик Но не указан, когда вы запускаете груз --help команда. То же самое происходит с Cargo FMT Чтобы отформатировать свой код, может быть, есть больше пасхальных яиц внутри грузовик .

Кроме того, есть Руководство о том, как добавить Clippy К грузу, если это не присутствует в вашем CLI.

И что делает Clippy?

Как любые льмина, Clippy имеет список предупреждений, как Manual_memcpy :

What it does
Checks for for-loops that manually copy items between slices that could be optimized by having a memcpy.

Why is this bad
It is not as fast as a memcpy.

Example
for i in 0..src.len() {
    dst[i + 64] = src[i];
}

Could be written as:
dst[64..(src.len() + 64)].clone_from_slice(&src[..]);

И длинный список ошибок Lint здесь Отказ

Как запустить эту команду?

Clippy создает ваш код, а затем запускает Linter, поэтому Clippy получает те же аргументы, что и Cargo Check подкоманды.

cargo clippy # Run in the default package(s).
cargo clippy --release # Run in release mode
cargo clippy --workspace # Checks the packages in the monorepo
cargo build --package myPkgName # An specific page

Затем, после - Вы можете добавить аргументы для самой уплотнения:

RUSTFLAGS="-Dwarnings" cargo clippy -- -D warnings

С этим аргументом задание сборки потерпит неудачу при встречении предупреждений. Rustflags = "- Dwarnings" Переменная среды требуется, чтобы получить этот эффект, но readme не упоминает об этом.

Пользовательская настройка

Вы можете настроить правила Lint в файл, называемым clippy.toml , например Вы можете повернуть педантично правила:

#![deny(clippy::pedantic)]

Эти правила содержат несколько очень агрессивных линтов, склонных к ложным положительным словам. 🤭

Вы можете проверить больше примеров здесь Отказ

Лучший конфигурацию для CI проверяет формат кода, затем перекликается в поведение кода, и, наконец, запустив тесты, которые вы написали:

# set env RUSTFLAGS="-Dwarnings"
cargo fmt --workspace -- --check
cargo clippy --workspace -- -D warnings
cargo test --workspace

Это все! И … Разве это не потрясающе?

Чтобы потратить минуту и использовать инструмент Lint, на мой взгляд, является одним из тех вещей, которые отмечают разницу и делает ваш код профессиональным, чистым и исполнителем.

Если вы их не используете, я призываю вас начать сейчас! Там есть много базовых гидов.

Если вы любите их использовать, теперь вы знаете скрытый новый трюк (чувствует себя хорошо, верно?)

Скажи мне, что ты думаешь!

Вы когда-нибудь нашли или реализуете полезные инструменты в Rust? 🦀 Вы улучшили свой код с помощью Clippy?

Расскажи мне об этом в комментариях!

Оригинал: «https://dev.to/cloudx/rust-and-the-hidden-cargo-clippy-2a2e»