miniextendr_lint/
rules.rs1pub mod doc_attr_interleave;
8pub mod export_attrs;
9pub mod ffi_unchecked;
10pub mod fn_visibility;
11pub mod impl_validation;
12pub mod lifetime_param;
13pub mod r_reserved_params;
14pub mod rf_error;
15pub mod s4_method_prefix;
16pub mod vctrs_self_ctor;
17
18use crate::crate_index::CrateIndex;
19use crate::diagnostic::Diagnostic;
20
21pub fn run_all_rules(index: &CrateIndex) -> Vec<Diagnostic> {
23 let mut diagnostics = Vec::new();
24
25 impl_validation::check(index, &mut diagnostics);
27
28 fn_visibility::check(index, &mut diagnostics);
30
31 export_attrs::check(index, &mut diagnostics);
33
34 r_reserved_params::check(index, &mut diagnostics);
36
37 rf_error::check(index, &mut diagnostics);
39
40 ffi_unchecked::check(index, &mut diagnostics);
42
43 s4_method_prefix::check(index, &mut diagnostics);
45
46 lifetime_param::check(index, &mut diagnostics);
48
49 vctrs_self_ctor::check(index, &mut diagnostics);
51
52 doc_attr_interleave::check(index, &mut diagnostics);
54
55 diagnostics.sort_by(|a, b| {
57 a.path
58 .cmp(&b.path)
59 .then(a.line.cmp(&b.line))
60 .then(a.code.cmp(&b.code))
61 });
62
63 diagnostics
64}