@@ -19,12 +19,141 @@ complexity = "warn"
1919correctness = " warn"
2020pedantic = " warn"
2121perf = " warn"
22- # restriction = "warn"
2322style = " warn"
2423suspicious = " warn"
2524
25+ # restriction
26+
27+ # Lib only
28+ # alloc_instead_of_core = { level = "deny", priority = 127 }
29+ # std_instead_of_alloc = { level = "deny", priority = 127 }
30+ # std_instead_of_core = { level = "deny", priority = 127 }
31+ # exhaustive_enums = { level = "deny", priority = 127 }
32+ # exhaustive_structs = { level = "deny", priority = 127 }
33+ # empty_enum_variants_with_brackets = { level = "deny", priority = 127 }
34+ # empty_structs_with_brackets = { level = "deny", priority = 127 }
35+ # missing_inline_in_public_items = { level = "deny", priority = 127 }
36+
37+ absolute_paths = { level = " deny" , priority = 127 }
38+ allow_attributes = { level = " deny" , priority = 127 }
39+ allow_attributes_without_reason = { level = " deny" , priority = 127 }
40+ # Debatable
41+ # arithmetic_side_effects = { level = "deny", priority = 127 }
42+ as_conversions = { level = " deny" , priority = 127 }
43+ as_pointer_underscore = { level = " deny" , priority = 127 }
44+ as_underscore = { level = " deny" , priority = 127 }
45+ assertions_on_result_states = { level = " deny" , priority = 127 }
46+ big_endian_bytes = { level = " deny" , priority = 127 }
47+ cfg_not_test = { level = " deny" , priority = 127 }
2648# ensure we do Arc::clone(&arc) instead of arc.clone()
2749clone_on_ref_ptr = { level = " deny" , priority = 127 }
50+ create_dir = { level = " deny" , priority = 127 }
51+ dbg_macro = { level = " deny" , priority = 127 }
52+ decimal_literal_representation = { level = " deny" , priority = 127 }
53+ # Debatable
54+ # default_numeric_fallback = { level = "deny", priority = 127 }
55+ default_union_representation = { level = " deny" , priority = 127 }
56+ deref_by_slicing = { level = " deny" , priority = 127 }
57+ doc_include_without_cfg = { level = " deny" , priority = 127 }
58+ else_if_without_else = { level = " deny" , priority = 127 }
59+ empty_drop = { level = " deny" , priority = 127 }
60+ error_impl_error = { level = " deny" , priority = 127 }
61+ exit = { level = " deny" , priority = 127 }
62+ field_scoped_visibility_modifiers = { level = " deny" , priority = 127 }
63+ filetype_is_file = { level = " deny" , priority = 127 }
64+ # Debatable
65+ # float_arithmetic = { level = "deny", priority = 127 }
66+ float_cmp_const = { level = " deny" , priority = 127 }
67+ fn_to_numeric_cast_any = { level = " deny" , priority = 127 }
68+ # Debatable
69+ # get_unwrap = { level = "deny", priority = 127 }
70+ host_endian_bytes = { level = " deny" , priority = 127 }
71+ # Debatable
72+ # if_then_some_else_none = { level = "deny", priority = 127 }
73+ impl_trait_in_params = { level = " deny" , priority = 127 }
74+ # Debatable
75+ # indexing_slicing = { level = "deny", priority = 127 }
76+ infinite_loop = { level = " deny" , priority = 127 }
77+ inline_asm_x86_att_syntax = { level = " deny" , priority = 127 }
78+ # Debatable
79+ # integer_division = { level = "deny", priority = 127 }
80+ # Debatable
81+ # integer_division_remainder_used = { level = "deny", priority = 127 }
82+ iter_over_hash_type = { level = " deny" , priority = 127 }
83+ large_include_file = { level = " deny" , priority = 127 }
84+ let_underscore_must_use = { level = " deny" , priority = 127 }
85+ let_underscore_untyped = { level = " deny" , priority = 127 }
86+ little_endian_bytes = { level = " deny" , priority = 127 }
87+ lossy_float_literal = { level = " deny" , priority = 127 }
88+ # Debatable
89+ # map_err_ignore = { level = "deny", priority = 127 }
90+ map_with_unused_argument_over_ranges = { level = " deny" , priority = 127 }
91+ missing_assert_message = { level = " deny" , priority = 127 }
92+ mixed_read_write_in_expression = { level = " deny" , priority = 127 }
93+ mod_module_files = { level = " deny" , priority = 127 }
94+ # Debatable
95+ # module_name_repetitions = { level = "deny", priority = 127 }
96+ modulo_arithmetic = { level = " deny" , priority = 127 }
97+ multiple_inherent_impl = { level = " deny" , priority = 127 }
98+ multiple_unsafe_ops_per_block = { level = " deny" , priority = 127 }
99+ mutex_atomic = { level = " deny" , priority = 127 }
100+ mutex_integer = { level = " deny" , priority = 127 }
101+ needless_raw_strings = { level = " deny" , priority = 127 }
102+ non_ascii_literal = { level = " deny" , priority = 127 }
103+ non_zero_suggestions = { level = " deny" , priority = 127 }
104+ panic_in_result_fn = { level = " deny" , priority = 127 }
105+ # Debatable
106+ # partial_pub_fields = { level = "deny", priority = 127 }
107+ pattern_type_mismatch = { level = " deny" , priority = 127 }
108+ precedence_bits = { level = " deny" , priority = 127 }
109+ # Debatable
110+ # print_stderr = { level = "deny", priority = 127 }
111+ # Debatable
112+ # print_stdout = { level = "deny", priority = 127 }
113+ pub_use = { level = " deny" , priority = 127 }
114+ pub_without_shorthand = { level = " deny" , priority = 127 }
115+ rc_buffer = { level = " deny" , priority = 127 }
116+ rc_mutex = { level = " deny" , priority = 127 }
117+ redundant_test_prefix = { level = " deny" , priority = 127 }
118+ renamed_function_params = { level = " deny" , priority = 127 }
119+ rest_pat_in_fully_bound_structs = { level = " deny" , priority = 127 }
120+ return_and_then = { level = " deny" , priority = 127 }
121+ # Debatable, need to think about it
122+ # same_name_method = { level = "deny", priority = 127 }
123+ semicolon_inside_block = { level = " deny" , priority = 127 }
124+ # Debatable
125+ # shadow_reuse = { level = "deny", priority = 127 }
126+ # Debatable
127+ # shadow_same = { level = "deny", priority = 127 }
128+ # Debatable
129+ # shadow_unrelated = { level = "deny", priority = 127 }
130+ str_to_string = { level = " deny" , priority = 127 }
131+ string_add = { level = " deny" , priority = 127 }
132+ string_lit_chars_any = { level = " deny" , priority = 127 }
133+ # Debatable, but no
134+ # string_slice = { level = "deny", priority = 127 }
135+ string_to_string = { level = " deny" , priority = 127 }
136+ suspicious_xor_used_as_pow = { level = " deny" , priority = 127 }
137+ tests_outside_test_module = { level = " deny" , priority = 127 }
138+ todo = { level = " deny" , priority = 127 }
139+ try_err = { level = " deny" , priority = 127 }
140+ undocumented_unsafe_blocks = { level = " deny" , priority = 127 }
141+ unimplemented = { level = " deny" , priority = 127 }
142+ unnecessary_safety_comment = { level = " deny" , priority = 127 }
143+ unnecessary_safety_doc = { level = " deny" , priority = 127 }
144+ unnecessary_self_imports = { level = " deny" , priority = 127 }
145+ unneeded_field_pattern = { level = " deny" , priority = 127 }
146+ # No, to signify invariants
147+ # unreachable = { level = "deny", priority = 127 }
148+ unseparated_literal_suffix = { level = " deny" , priority = 127 }
149+ unused_result_ok = { level = " deny" , priority = 127 }
150+ unused_trait_names = { level = " deny" , priority = 127 }
151+ # No, we separate fatal from recoverable
152+ # unwrap_in_result = { level = "deny", priority = 127 }
153+ verbose_file_reads = { level = " deny" , priority = 127 }
154+ wildcard_enum_match_arm = { level = " deny" , priority = 127 }
155+
156+ # end restriction
28157
29158# this has 0 performance implications, the binding is compiled away, and it could cause issues
30159# when done blindly, plus it makes it harder to debug as you cannot put breakpoints on return
@@ -38,6 +167,12 @@ multiple_crate_versions = { level = "allow", priority = 127 }
38167# issues when refactoring
39168needless_continue = { level = " allow" , priority = 127 }
40169
170+ # fights with `pattern_type_mismatch`
171+ needless_borrowed_reference = { level = " allow" , priority = 127 }
172+
173+ # Conflicts with `else_if_without_else`
174+ redundant_else = { level = " allow" , priority = 127 }
175+
41176# this one causes confusion when combining variables (`foo`) and
42177# dereferenced variables (`foo.bar`). The latter cannot be inlined
43178# so we don't inline anything
@@ -49,7 +184,3 @@ non_ascii_idents = { level = "deny", priority = 127 }
49184
50185[dependencies ]
51186color-eyre = " 0.6.5"
52-
53- # OpenSSL for musl
54- [target .'cfg(all(any(target_arch="x86_64", target_arch="aarch64"), target_os="linux", target_env="musl"))' .dependencies ]
55- openssl = { version = " 0.10.73" , features = [" vendored" ] }
0 commit comments