Files
lint-policy/Cargo.toml
T
2026-10-01 21:46:56 -06:00

553 lines
16 KiB
TOML

[workspace]
resolver = "3"
members = ["crates/*"]
[workspace.package]
edition = "2024"
rust-version = "1.85"
license-file = "LICENSE.md"
publish = false
[workspace.dependencies]
lint-policy = { path = "crates/lint-policy", version = "=0.0.3", default-features = false }
anyhow = { version = "^1.0.14", default-features = false }
clap = { version = "^4.5.61", default-features = false }
itertools = { version = "^0.15.0", default-features = false }
serde = { version = "^1.0.225", default-features = false }
strum = { version = "^0.28.0", default-features = false }
thiserror = { version = "^2.0.0", default-features = false }
toml = { version = "^1.0.7", default-features = false }
[workspace.lints.clippy]
cargo = { level = "warn", priority = -3 }
complexity = { level = "warn", priority = -3 }
correctness = { level = "deny", priority = -2 }
perf = { level = "warn", priority = -3 }
style = { level = "warn", priority = -3 }
suspicious = { level = "warn", priority = -3 }
absolute_paths = "allow"
alloc_instead_of_core = "warn"
allow_attributes = "warn"
allow_attributes_without_reason = "deny"
arbitrary_source_item_ordering = "allow"
arithmetic_side_effects = "deny"
as_conversions = "deny"
as_pointer_underscore = "deny"
as_ptr_cast_mut = "deny"
as_underscore = "deny"
assert_is_empty = "allow"
assertions_on_result_states = "warn"
assigning_clones = "warn"
big_endian_bytes = "allow"
bool_to_int_with_if = "warn"
borrow_as_ptr = "warn"
branches_sharing_code = "warn"
case_sensitive_file_extension_comparisons = "warn"
cast_lossless = "deny"
cast_possible_truncation = "deny"
cast_possible_wrap = "deny"
cast_precision_loss = "deny"
cast_ptr_alignment = "deny"
cast_sign_loss = "deny"
cfg_not_test = "deny"
checked_conversions = "deny"
clear_with_drain = "warn"
clone_on_ref_ptr = "warn"
cloned_instead_of_copied = "warn"
coerce_container_to_any = "warn"
cognitive_complexity = "allow"
collapsible_else_if = "warn"
collection_is_never_read = "warn"
comparison_chain = "warn"
copy_iterator = "warn"
create_dir = "warn"
dbg_macro = "warn"
debug_assert_with_mut_call = "deny"
decimal_bitwise_operands = "warn"
decimal_literal_representation = "warn"
default_numeric_fallback = "warn"
default_trait_access = "warn"
default_union_representation = "allow"
definition_in_module_root = "allow"
deref_by_slicing = "warn"
derive_partial_eq_without_eq = "warn"
disallowed_script_idents = "deny"
doc_broken_link = "warn"
doc_comment_double_space_linebreaks = "warn"
doc_include_without_cfg = "warn"
doc_link_code = "warn"
doc_link_with_quotes = "warn"
doc_markdown = "warn"
doc_paragraphs_missing_punctuation = "warn"
duration_suboptimal_units = "warn"
elidable_lifetime_names = "warn"
else_if_without_else = "warn"
empty_drop = "warn"
empty_enum_variants_with_brackets = "warn"
empty_enums = "warn"
empty_structs_with_brackets = "warn"
enum_glob_use = "warn"
equatable_if_let = "warn"
error_impl_error = "warn"
exhaustive_enums = "warn"
exhaustive_structs = "warn"
exit = "warn"
expect_used = "warn"
expl_impl_clone_on_copy = "warn"
explicit_deref_methods = "warn"
explicit_into_iter_loop = "warn"
explicit_iter_loop = "warn"
fallible_impl_from = "warn"
field_scoped_visibility_modifiers = "warn"
filetype_is_file = "warn"
filter_map_next = "warn"
flat_map_option = "warn"
float_arithmetic = "warn"
float_cmp = "warn"
float_cmp_const = "warn"
fn_params_excessive_bools = "allow"
fn_to_numeric_cast_any = "warn"
format_collect = "warn"
format_push_string = "warn"
future_not_send = "warn"
get_unwrap = "warn"
host_endian_bytes = "allow"
if_not_else = "warn"
if_then_some_else_none = "warn"
ignore_without_reason = "warn"
ignored_unit_patterns = "warn"
impl_trait_in_params = "warn"
implicit_clone = "warn"
implicit_hasher = "warn"
implicit_return = "allow"
imprecise_flops = "warn"
inconsistent_struct_constructor = "warn"
index_refutable_slice = "deny"
indexing_slicing = "deny"
inefficient_to_string = "warn"
infinite_loop = "warn"
inline_always = "warn"
inline_asm_x86_att_syntax = "warn"
inline_asm_x86_intel_syntax = "warn"
inline_modules = "allow"
inline_trait_bounds = "allow"
integer_division = "deny"
integer_division_remainder_used = "deny"
into_iter_without_iter = "warn"
invalid_upcast_comparisons = "warn"
ip_constant = "warn"
items_after_statements = "warn"
iter_filter_is_ok = "warn"
iter_filter_is_some = "warn"
iter_not_returning_iterator = "warn"
iter_on_empty_collections = "warn"
iter_on_single_items = "warn"
iter_over_hash_type = "warn"
iter_with_drain = "warn"
iter_without_into_iter = "warn"
large_digit_groups = "warn"
large_futures = "warn"
large_include_file = "warn"
large_stack_arrays = "warn"
large_stack_frames = "warn"
large_types_passed_by_value = "warn"
let_underscore_must_use = "warn"
let_underscore_untyped = "warn"
linkedlist = "warn"
literal_string_with_formatting_args = "warn"
little_endian_bytes = "allow"
lossy_float_literal = "warn"
macro_use_imports = "warn"
manual_assert = "warn"
manual_assert_eq = "warn"
manual_bit_width = "warn"
manual_ilog2 = "warn"
manual_instant_elapsed = "warn"
manual_is_power_of_two = "warn"
manual_is_variant_and = "warn"
manual_let_else = "warn"
manual_midpoint = "warn"
manual_string_new = "warn"
many_single_char_names = "warn"
map_err_ignore = "warn"
map_unwrap_or = "warn"
map_with_unused_argument_over_ranges = "warn"
match_bool = "warn"
match_same_arms = "warn"
match_wild_err_arm = "warn"
match_wildcard_for_single_variants = "warn"
maybe_infinite_iter = "warn"
mem_forget = "warn"
min_ident_chars = "allow"
mismatching_type_param_order = "warn"
missing_assert_message = "warn"
missing_asserts_for_indexing = "warn"
missing_const_for_fn = "warn"
missing_docs_in_private_items = "warn"
missing_errors_doc = "warn"
missing_fields_in_debug = "warn"
missing_inline_in_public_items = "warn"
missing_panics_doc = "warn"
missing_trait_methods = "warn"
mixed_read_write_in_expression = "warn"
mod_module_files = "allow"
module_name_repetitions = "warn"
modulo_arithmetic = "warn"
multiple_crate_versions = "allow"
multiple_inherent_impl = "warn"
multiple_unsafe_ops_per_block = "warn"
must_use_candidate = "warn"
mut_mut = "warn"
mutex_atomic = "warn"
mutex_integer = "warn"
naive_bytecount = "warn"
needless_bitwise_bool = "warn"
needless_collect = "warn"
needless_continue = "warn"
needless_for_each = "warn"
needless_pass_by_ref_mut = "warn"
needless_pass_by_value = "warn"
needless_raw_string_hashes = "warn"
needless_raw_strings = "warn"
needless_type_cast = "warn"
no_effect_underscore_binding = "warn"
no_mangle_with_rust_abi = "warn"
non_ascii_literal = "allow"
non_send_fields_in_send_ty = "warn"
non_std_lazy_statics = "warn"
non_zero_suggestions = "warn"
nonminimal_bool = "warn"
option_as_ref_cloned = "warn"
option_if_let_else = "warn"
option_option = "warn"
or_fun_call = "warn"
overly_complex_bool_expr = "allow"
panic = "warn"
panic_in_result_fn = "warn"
partial_pub_fields = "warn"
path_buf_push_overwrite = "warn"
pathbuf_init_then_push = "warn"
pattern_type_mismatch = "allow"
pointer_format = "warn"
precedence_bits = "warn"
print_stderr = "warn"
print_stdout = "warn"
ptr_as_ptr = "warn"
ptr_cast_constness = "warn"
ptr_offset_by_literal = "warn"
pub_underscore_fields = "warn"
pub_use = "allow"
pub_with_shorthand = "allow"
pub_without_shorthand = "warn"
question_mark_used = "allow"
range_minus_one = "warn"
range_plus_one = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
read_zero_byte_vec = "warn"
redundant_clone = "warn"
redundant_closure_for_method_calls = "warn"
redundant_else = "warn"
redundant_pub_crate = "allow"
redundant_test_prefix = "warn"
redundant_type_annotations = "warn"
ref_as_ptr = "warn"
ref_binding_to_reference = "warn"
ref_option = "warn"
ref_option_ref = "warn"
ref_patterns = "warn"
renamed_function_params = "warn"
rest_pat_in_fully_bound_structs = "warn"
rest_pattern_accessible_field = "warn"
return_and_then = "warn"
return_self_not_must_use = "warn"
same_functions_in_if_condition = "warn"
same_length_and_capacity = "warn"
same_name_method = "warn"
search_is_some = "warn"
self_named_module_files = "warn"
self_only_used_in_recursion = "warn"
semicolon_if_nothing_returned = "warn"
semicolon_inside_block = "warn"
semicolon_outside_block = "allow"
separated_literal_suffix = "allow"
set_contains_or_insert = "warn"
shadow_reuse = "allow"
shadow_same = "allow"
shadow_unrelated = "allow"
should_panic_without_expect = "warn"
significant_drop_in_scrutinee = "warn"
significant_drop_tightening = "warn"
similar_names = "allow"
single_call_fn = "allow"
single_char_lifetime_names = "allow"
single_char_pattern = "allow"
single_match_else = "warn"
single_option_map = "warn"
stable_sort_primitive = "warn"
std_instead_of_alloc = "warn"
std_instead_of_core = "warn"
str_split_at_newline = "warn"
str_to_string = "warn"
string_add = "warn"
string_add_assign = "warn"
string_lit_as_bytes = "warn"
string_lit_chars_any = "warn"
string_slice = "warn"
struct_excessive_bools = "allow"
struct_field_names = "warn"
suboptimal_flops = "warn"
suspicious_operation_groupings = "warn"
suspicious_xor_used_as_pow = "warn"
tests_outside_test_module = "warn"
todo = "warn"
too_long_first_doc_paragraph = "allow"
too_many_lines = "allow"
trailing_empty_array = "warn"
trait_duplication_in_bounds = "warn"
transmute_ptr_to_ptr = "warn"
transmute_undefined_repr = "warn"
trivial_regex = "warn"
trivially_copy_pass_by_ref = "warn"
try_err = "warn"
tuple_array_conversions = "warn"
type_repetition_in_bounds = "warn"
unchecked_time_subtraction = "deny"
undocumented_unsafe_blocks = "deny"
unicode_not_nfc = "warn"
unimplemented = "warn"
uninhabited_references = "warn"
uninlined_format_args = "warn"
unnecessary_box_returns = "warn"
unnecessary_debug_formatting = "warn"
unnecessary_join = "warn"
unnecessary_literal_bound = "warn"
unnecessary_rest_pattern = "warn"
unnecessary_safety_comment = "warn"
unnecessary_safety_doc = "warn"
unnecessary_self_imports = "warn"
unnecessary_semicolon = "warn"
unnecessary_struct_initialization = "warn"
unnecessary_trailing_comma = "warn"
unnecessary_wraps = "warn"
unneeded_field_pattern = "warn"
unnested_or_patterns = "warn"
unreachable = "allow"
unreadable_literal = "warn"
unsafe_derive_deserialize = "warn"
unseparated_literal_suffix = "warn"
unused_async = "warn"
unused_async_trait_impl = "warn"
unused_peekable = "warn"
unused_result_ok = "warn"
unused_rounding = "warn"
unused_self = "warn"
unused_trait_names = "warn"
unwrap_in_result = "warn"
unwrap_used = "warn"
use_debug = "warn"
use_self = "warn"
used_underscore_binding = "warn"
used_underscore_items = "warn"
useless_let_if_seq = "warn"
verbose_bit_mask = "warn"
verbose_file_reads = "warn"
volatile_composites = "warn"
while_float = "warn"
wildcard_enum_match_arm = "warn"
wildcard_imports = "warn"
with_capacity_zero = "warn"
zero_sized_map_values = "warn"
[workspace.lints.rust]
deprecated_safe = { level = "forbid", priority = -1 }
future_incompatible = { level = "deny", priority = -2 }
keyword_idents = { level = "deny", priority = -2 }
let_underscore = { level = "warn", priority = -3 }
nonstandard_style = { level = "warn", priority = -3 }
refining_impl_trait = { level = "warn", priority = -3 }
rust_2018_compatibility = { level = "deny", priority = -2 }
rust_2018_idioms = { level = "deny", priority = -2 }
rust_2021_compatibility = { level = "deny", priority = -2 }
rust_2024_compatibility = { level = "deny", priority = -2 }
unknown_or_malformed_diagnostic_attributes = { level = "deny", priority = -2 }
unused = { level = "warn", priority = -3 }
ambiguous_glob_reexports = "warn"
ambiguous_negative_literals = "deny"
ambiguous_wide_pointer_comparisons = "warn"
arithmetic_overflow = "deny"
asm_sub_register = "warn"
async_fn_in_trait = "warn"
bad_asm_style = "warn"
binary_asm_labels = "deny"
bindings_with_variant_name = "deny"
break_with_label_and_loop = "warn"
c_void_returns = "warn"
clashing_extern_declarations = "warn"
closure_returning_async_block = "warn"
confusable_idents = "warn"
const_item_interior_mutations = "warn"
const_item_mutation = "warn"
dangerous_implicit_autorefs = "deny"
dangling_pointers_from_locals = "warn"
dangling_pointers_from_temporaries = "warn"
dead_code_pub_in_binary = "warn"
deprecated = "warn"
deprecated_in_future = "allow"
deprecated_where_clause_location = "warn"
deref_into_dyn_supertrait = "warn"
deref_nullptr = "deny"
double_negations = "warn"
drop_bounds = "warn"
dropping_copy_types = "warn"
dropping_references = "warn"
duplicate_features = "deny"
duplicate_macro_attributes = "warn"
dyn_drop = "warn"
enum_intrinsics_non_enums = "deny"
explicit_builtin_cfgs_in_flags = "deny"
exported_private_dependencies = "warn"
ffi_unwind_calls = "warn"
for_loops_over_fallibles = "warn"
forgetting_copy_types = "warn"
forgetting_references = "warn"
function_casts_as_integer = "warn"
function_item_references = "warn"
hidden_glob_reexports = "warn"
impl_trait_redundant_captures = "warn"
improper_ctypes = "warn"
improper_ctypes_definitions = "warn"
improper_gpu_kernel_arg = "warn"
incomplete_features = "warn"
incomplete_include = "deny"
ineffective_unstable_trait_impl = "deny"
inline_no_sanitize = "warn"
integer_to_ptr_transmutes = "warn"
internal_features = "warn"
invalid_atomic_ordering = "deny"
invalid_doc_attributes = "warn"
invalid_from_utf8 = "warn"
invalid_from_utf8_unchecked = "deny"
invalid_nan_comparisons = "warn"
invalid_null_arguments = "deny"
invalid_reference_casting = "deny"
invalid_runtime_symbol_definitions = "deny"
invalid_value = "warn"
irrefutable_let_patterns = "warn"
large_assignments = "warn"
linker_info = "allow"
linker_messages = "warn"
long_running_const_eval = "deny"
macro_use_extern_crate = "warn"
meta_variable_misuse = "warn"
mismatched_lifetime_syntaxes = "warn"
missing_abi = "warn"
missing_copy_implementations = "warn"
missing_debug_implementations = "warn"
missing_docs = "warn"
missing_gpu_kernel_export_name = "warn"
mixed_script_confusables = "warn"
mutable_transmutes = "deny"
named_arguments_used_positionally = "warn"
named_asm_labels = "deny"
no_mangle_const_items = "deny"
non_ascii_idents = "deny"
non_contiguous_range_endpoints = "warn"
non_local_definitions = "warn"
non_shorthand_field_patterns = "warn"
noop_method_call = "warn"
opaque_hidden_inferred_bound = "warn"
overflowing_literals = "deny"
overlapping_range_endpoints = "warn"
private_bounds = "warn"
private_interfaces = "warn"
ptr_to_integer_transmute_in_consts = "warn"
raw_borrows_via_references = "warn"
redundant_imports = "warn"
redundant_lifetimes = "warn"
renamed_and_removed_lints = "warn"
rtsan_nonblocking_async = "warn"
single_use_lifetimes = "warn"
special_module_name = "warn"
stable_features = "warn"
suspicious_double_ref_op = "warn"
suspicious_runtime_symbol_definitions = "warn"
text_direction_codepoint_in_comment = "deny"
text_direction_codepoint_in_literal = "deny"
trivial_bounds = "warn"
trivial_casts = "warn"
trivial_numeric_casts = "warn"
type_alias_bounds = "warn"
uncommon_codepoints = "warn"
unconditional_panic = "deny"
unconditional_recursion = "warn"
undropped_manually_drops = "deny"
unexpected_cfgs = "warn"
unfulfilled_lint_expectations = "warn"
ungated_async_fn_track_caller = "warn"
unit_bindings = "warn"
unknown_crate_types = "deny"
unknown_lints = "warn"
unnameable_test_items = "warn"
unnameable_types = "warn"
unnecessary_transmutes = "warn"
unpredictable_function_pointer_comparisons = "warn"
unreachable_pub = "warn"
unsafe_code = "forbid"
unstable_features = "forbid"
unused_associated_type_bounds = "warn"
unused_comparisons = "warn"
unused_crate_dependencies = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_qualifications = "warn"
unused_results = "warn"
useless_deprecated = "deny"
useless_ptr_null_checks = "warn"
uses_power_alignment = "warn"
variant_size_differences = "warn"
warnings = "warn"
while_true = "warn"
# unstable lints
# default_overrides_default_fields = "deny"
# deprecated_llvm_intrinsic = "warn"
# duplicate_tools = "deny"
# implicit_provenance_casts = "deny"
# malformed_diagnostic_filters = "warn"
# multiple_supertrait_upcastable = "warn"
# must_not_suspend = "warn"
# non_exhaustive_omitted_patterns = "warn"
# resolving_to_items_shadowing_supertrait_items = "warn"
# shadowing_supertrait_items = "warn"
# tail_call_track_caller = "warn"
# test_unstable_lint = "deny"
# unqualified_local_imports = "deny"
[workspace.lints.rustdoc]
bare_urls = "warn"
broken_footnote = "warn"
broken_intra_doc_links = "warn"
invalid_codeblock_attributes = "warn"
invalid_html_tags = "warn"
invalid_rust_codeblocks = "warn"
missing_crate_level_docs = "warn"
private_doc_tests = "warn"
private_intra_doc_links = "warn"
redundant_explicit_links = "warn"
unescaped_backticks = "warn"
unused_footnote_definition = "warn"
# unstable lints
# missing_doc_code_examples = "warn"
[profile.release]
opt-level = 3
strip = "debuginfo"
overflow-checks = true
lto = "fat"
codegen-units = 1