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