mirror of
https://github.com/Zenithsiz/dcb.git
synced 2026-02-03 08:12:26 +00:00
Now using a global lint list for use with cargo clippy-lints.
This commit is contained in:
parent
4397b0dfd9
commit
ac6a777d7d
@ -4,6 +4,7 @@
|
||||
// Imports
|
||||
use quote::ToTokens;
|
||||
|
||||
/// Derives `Bytes` using a sentinel value which maps to `None`.
|
||||
#[proc_macro_derive(ProxySentinel, attributes(proxy_sentinel))]
|
||||
pub fn proxy_sentinel_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
||||
//let args = syn::parse_macro_input!(args as syn::AttributeArgs);
|
||||
@ -18,21 +19,13 @@ pub fn proxy_sentinel_derive(input: proc_macro::TokenStream) -> proc_macro::Toke
|
||||
},
|
||||
};
|
||||
|
||||
if field.ident.is_some() {
|
||||
panic!("Struct must be a tuple struct");
|
||||
}
|
||||
assert!(field.ident.is_none(), "Struct must be a tuple struct");
|
||||
|
||||
let mut sentinel_value = None;
|
||||
let mut wrapper_type = None;
|
||||
for attr in &input.attrs {
|
||||
match attr.parse_meta() {
|
||||
Ok(syn::Meta::List(list))
|
||||
if list
|
||||
.path
|
||||
.get_ident()
|
||||
.map(|ident| ident == "proxy_sentinel")
|
||||
.unwrap_or(false) =>
|
||||
{
|
||||
Ok(syn::Meta::List(list)) if list.path.get_ident().map_or(false, |ident| ident == "proxy_sentinel") => {
|
||||
for nested_attr in &list.nested {
|
||||
match nested_attr {
|
||||
syn::NestedMeta::Meta(syn::Meta::NameValue(name_value)) => match name_value.path.get_ident() {
|
||||
@ -87,6 +80,7 @@ pub fn proxy_sentinel_derive(input: proc_macro::TokenStream) -> proc_macro::Toke
|
||||
output.into()
|
||||
}
|
||||
|
||||
/// Derives `Bytes` using discriminants for each variant
|
||||
#[proc_macro_derive(Discriminant)]
|
||||
pub fn discriminant_derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
|
||||
let input = syn::parse_macro_input!(input as syn::ItemEnum);
|
||||
@ -103,6 +97,7 @@ pub fn discriminant_derive(input: proc_macro::TokenStream) -> proc_macro::TokenS
|
||||
}
|
||||
|
||||
let struct_name = input.ident;
|
||||
#[allow(clippy::semicolon_if_nothing_returned)] // `quote!`'s fault
|
||||
let output = quote::quote!(
|
||||
// TODO: Maybe just define this in `dcb_bytes` and reference it here instead?
|
||||
/// Error type for [`Bytes::deserialize_bytes`]
|
||||
|
||||
@ -2,61 +2,6 @@
|
||||
|
||||
// Features
|
||||
#![feature()]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod byteorder_ext;
|
||||
|
||||
@ -1,62 +1,6 @@
|
||||
#![doc = include_str!("lib.md")]
|
||||
// Features
|
||||
#![feature(never_type, unwrap_infallible, exclusive_range_pattern, assert_matches)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
|
||||
// Modules
|
||||
pub mod cursor;
|
||||
|
||||
@ -10,61 +10,6 @@
|
||||
str_internals,
|
||||
destructuring_assignment
|
||||
)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod dir;
|
||||
|
||||
@ -10,7 +10,6 @@
|
||||
#![feature(
|
||||
format_args_capture,
|
||||
never_type,
|
||||
iter_map_while,
|
||||
array_chunks,
|
||||
const_btree_new,
|
||||
unwrap_infallible,
|
||||
@ -20,61 +19,6 @@
|
||||
exclusive_range_pattern,
|
||||
label_break_value
|
||||
)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod data;
|
||||
|
||||
@ -5,61 +5,6 @@
|
||||
|
||||
// Features
|
||||
#![feature()]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod game_file;
|
||||
|
||||
@ -1,62 +1,6 @@
|
||||
#![doc = include_str!("lib.md")]
|
||||
// Features
|
||||
#![feature(never_type, unwrap_infallible, format_args_capture, array_methods, str_internals)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
|
||||
// Modules
|
||||
pub mod date_time;
|
||||
|
||||
@ -2,61 +2,6 @@
|
||||
|
||||
// Features
|
||||
#![feature(assert_matches, format_args_capture, generic_associated_types, bool_to_option)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod inst;
|
||||
|
||||
@ -2,61 +2,6 @@
|
||||
|
||||
// Features
|
||||
#![feature(never_type, unwrap_infallible, array_chunks)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod header;
|
||||
|
||||
@ -1,61 +1,6 @@
|
||||
#![doc = include_str!("lib.md")]
|
||||
// Features
|
||||
#![feature(never_type, unwrap_infallible, array_chunks)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
// Modules
|
||||
pub mod bpp;
|
||||
|
||||
@ -12,62 +12,6 @@
|
||||
array_methods,
|
||||
iter_zip
|
||||
)]
|
||||
// Lints
|
||||
#![warn(clippy::restriction, clippy::pedantic, clippy::nursery)]
|
||||
// We'll disable the ones we don't need
|
||||
#![allow(clippy::blanket_clippy_restriction_lints)]
|
||||
// No unsafe allowed in this crate
|
||||
#![forbid(unsafe_code)]
|
||||
// Must use `expect` instead of `unwrap`
|
||||
#![forbid(clippy::unwrap_used)]
|
||||
// We don't need to mark every public function `inline`
|
||||
#![allow(clippy::missing_inline_in_public_items)]
|
||||
// We prefer literals to be copy-paste-able rather than readable
|
||||
#![allow(clippy::unreadable_literal)]
|
||||
// We prefer suffixes to be glued to the literal
|
||||
#![allow(clippy::unseparated_literal_suffix)]
|
||||
// We're fine with panicking when entering an unexpected state
|
||||
#![allow(
|
||||
clippy::panic,
|
||||
clippy::unreachable,
|
||||
clippy::expect_used,
|
||||
clippy::panic_in_result_fn,
|
||||
clippy::unwrap_in_result,
|
||||
clippy::indexing_slicing,
|
||||
clippy::todo
|
||||
)]
|
||||
// We prefer tail calls
|
||||
#![allow(clippy::implicit_return)]
|
||||
// We use multiple implementations to separate logic
|
||||
#![allow(clippy::multiple_inherent_impl)]
|
||||
// We use granular error types, usually one for each function, which document the
|
||||
// errors that might happen, as opposed to documenting them in the function
|
||||
#![allow(clippy::missing_errors_doc)]
|
||||
// Due to our module organization, we end up with data types inheriting their module's name
|
||||
#![allow(clippy::module_name_repetitions)]
|
||||
// We need arithmetic for this crate
|
||||
#![allow(clippy::integer_arithmetic, clippy::integer_division)]
|
||||
// We want to benefit from match ergonomics where possible
|
||||
#![allow(clippy::pattern_type_mismatch)]
|
||||
// We only use wildcards when we only care about certain variants
|
||||
#![allow(clippy::wildcard_enum_match_arm, clippy::match_wildcard_for_single_variants)]
|
||||
// We're fine with shadowing, as long as it's related
|
||||
#![allow(clippy::shadow_reuse, clippy::shadow_same)]
|
||||
// Matching on booleans can look better than `if / else`
|
||||
#![allow(clippy::match_bool, clippy::single_match_else, clippy::if_not_else)]
|
||||
// If the `else` isn't needed, we don't put it
|
||||
#![allow(clippy::else_if_without_else)]
|
||||
// We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
#![allow(clippy::exhaustive_structs, clippy::exhaustive_enums)]
|
||||
// There are too many false positives with these lints
|
||||
#![allow(clippy::use_self)]
|
||||
// `Header` and `Reader` are common names
|
||||
#![allow(clippy::similar_names)]
|
||||
// We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
// Some errors don't carry enough information to include them in another super-error
|
||||
#![allow(clippy::map_err_ignore)]
|
||||
|
||||
|
||||
// Modules
|
||||
pub mod card;
|
||||
|
||||
91
lints.toml
Normal file
91
lints.toml
Normal file
@ -0,0 +1,91 @@
|
||||
warn = [
|
||||
"clippy::restriction",
|
||||
"clippy::pedantic",
|
||||
"clippy::nursery",
|
||||
]
|
||||
|
||||
forbid = [
|
||||
# Must use `expect` instead of unwrap
|
||||
"clippy::unwrap_used",
|
||||
]
|
||||
|
||||
allow = [
|
||||
# We don't need to mark every public function `inline`
|
||||
"clippy::missing_inline_in_public_items", #
|
||||
# We prefer literals to be copy-paste-able rather than readable
|
||||
"clippy::unreadable_literal", #
|
||||
# We prefer suffixes to be glued to the literal
|
||||
"clippy::unseparated_literal_suffix", #
|
||||
# We're fine with panicking when entering an unexpected state
|
||||
"clippy::panic",
|
||||
"clippy::unreachable",
|
||||
"clippy::expect_used",
|
||||
"clippy::panic_in_result_fn",
|
||||
"clippy::unwrap_in_result",
|
||||
"clippy::indexing_slicing",
|
||||
"clippy::todo", #
|
||||
# We prefer tail calls
|
||||
"clippy::implicit_return", #
|
||||
# We use multiple implementations to separate logic
|
||||
"clippy::multiple_inherent_impl", #
|
||||
# We use granular error types, usually one for each function, which document the
|
||||
# errors that might happen, as opposed to documenting them in the function
|
||||
"clippy::missing_errors_doc", #
|
||||
# Due to our module organization, we end up with data types inheriting their module's name
|
||||
"clippy::module_name_repetitions", #
|
||||
# We need arithmetic for this crate
|
||||
"clippy::integer_arithmetic",
|
||||
"clippy::integer_division", #
|
||||
# We want to benefit from match ergonomics where possible
|
||||
"clippy::pattern_type_mismatch", #
|
||||
# We only use wildcards when we only care about certain variants
|
||||
"clippy::wildcard_enum_match_arm",
|
||||
"clippy::match_wildcard_for_single_variants", #
|
||||
# We're fine with shadowing, as long as it's related
|
||||
"clippy::shadow_reuse",
|
||||
"clippy::shadow_same", #
|
||||
# Matching on booleans can look better than `if / else`
|
||||
"clippy::match_bool",
|
||||
"clippy::single_match_else",
|
||||
"clippy::if_not_else", #
|
||||
# If the `else` isn't needed, we don't put it
|
||||
"clippy::else_if_without_else", #
|
||||
# We're fine with non-exhaustive structs / enums, we aren't committing to them yet.
|
||||
"clippy::exhaustive_structs",
|
||||
"clippy::exhaustive_enums", #
|
||||
# There are too many false positives with these lints
|
||||
"clippy::use_self", #
|
||||
# `Header` and `Reader` are common names
|
||||
"clippy::similar_names", #
|
||||
# We only use `# Panics` where a panic might be caused by a mis-use of the user, not assertions
|
||||
"clippy::missing_panics_doc", #
|
||||
# Some errors don't carry enough information to include them in another super-error
|
||||
"clippy::map_err_ignore", #
|
||||
# We prefer to not use `mods.rs` files
|
||||
"clippy::self_named_module_files", #
|
||||
# Some private items don't make sense to document
|
||||
"clippy::missing_docs_in_private_items", #
|
||||
# Too many false posities
|
||||
# TODO: Remove once not as many false positives
|
||||
"clippy::missing_const_for_fn", #
|
||||
# We use `println` in binaries
|
||||
# TODO: Filter this just for binaries
|
||||
"clippy::print_stdout", #
|
||||
# Not worth considering for most crates
|
||||
# TODO: Deny in certain crates where it matters
|
||||
"clippy::as_conversions",
|
||||
"clippy::cast_possible_truncation",
|
||||
"clippy::cast_sign_loss",
|
||||
"clippy::cast_precision_loss", #
|
||||
# We're fine defining items closer to their first usage
|
||||
# TODO: Find a lint that instead warns of using items before defined
|
||||
"clippy::items_after_statements", #
|
||||
# TODO: Remove it from here once `array_split[_mut]` fixes this.
|
||||
"clippy::shadow_unrelated", #
|
||||
# TODO: Remove once most false positives are dealt with
|
||||
"clippy::same_name_method", #
|
||||
# We're fine with non-ascii characters in *strings*
|
||||
"clippy::non_ascii_literal", #
|
||||
# We're fine with floating point arithmetic
|
||||
"clippy::float_arithmetic",
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user