From e24f33facdb57eb4a8e1e798444c47d8d550acb5 Mon Sep 17 00:00:00 2001
From: Awiteb
Date: Sun, 5 May 2024 20:12:21 +0300
Subject: [PATCH] chore(lints): Add `rust`/`clippy` lints
This will improve the DX, and make the codebase easy to figuring out
---
Cargo.toml | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 52 insertions(+), 2 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 896bfe1..5dee409 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,10 +5,10 @@ edition = "2021"
license = "GPL-3.0-only"
authors = ["Awiteb "]
readme = "README.md"
-description = "A local CLI password manager"
+description = "A local CLI password/vault manager"
repository = "https://git.4rs.nl/awiteb/lprs"
rust-version = "1.74.0"
-keywords = ["password", "manager", "CLI"]
+keywords = ["password", "vault", "manager", "CLI"]
categories = ["command-line-utilities"]
[dependencies]
@@ -35,5 +35,55 @@ default = ["update-notify"]
update-notify = ["reqwest/blocking"]
reqwest = ["dep:reqwest"]
+[lints.rust]
+unsafe_code = "forbid"
+missing_docs = "warn"
+
+[lints.clippy]
+# I know is huge, but I like to be explicit, it also provides
+# a better DX for new contributors (Make it easier to understand the codebase).
+# Also, this is a general linting configuration, it's not specific to this project.
+wildcard_imports = "deny"
+manual_let_else = "deny"
+match_bool = "deny"
+match_on_vec_items = "deny"
+or_fun_call = "deny"
+panic = "deny"
+unwrap_used = "deny"
+
+missing_assert_message = "warn"
+missing_const_for_fn = "warn"
+missing_errors_doc = "warn"
+absolute_paths = "warn"
+cast_lossless = "warn"
+clone_on_ref_ptr = "warn"
+cloned_instead_of_copied = "warn"
+dbg_macro = "warn"
+default_trait_access = "warn"
+empty_enum_variants_with_brackets = "warn"
+empty_line_after_doc_comments = "warn"
+empty_line_after_outer_attr = "warn"
+empty_structs_with_brackets = "warn"
+enum_glob_use = "warn"
+equatable_if_let = "warn"
+explicit_iter_loop = "warn"
+filetype_is_file = "warn"
+filter_map_next = "warn"
+flat_map_option = "warn"
+float_cmp = "warn"
+format_push_string = "warn"
+future_not_send = "warn"
+if_not_else = "warn"
+if_then_some_else_none = "warn"
+implicit_clone = "warn"
+inconsistent_struct_constructor = "warn"
+indexing_slicing = "warn"
+iter_filter_is_ok = "warn"
+iter_filter_is_some = "warn"
+iter_not_returning_iterator = "warn"
+manual_is_variant_and = "warn"
+option_if_let_else = "warn"
+option_option = "warn"
+
[profile.release]
strip = true # Automatically strip symbols from the binary.