Skip to main content

specfold_core/check/
rules.rs

1//! The rule catalog, one module per family.
2
3mod attachments;
4mod cites;
5mod commands;
6mod forbid;
7mod guarded;
8mod ids;
9mod lifecycle;
10mod links;
11mod placement;
12mod schema;
13mod support;
14mod visibility;
15
16use super::rule::Rule;
17
18pub fn catalog() -> Vec<Box<dyn Rule>> {
19    vec![
20        Box::new(schema::Frontmatter),
21        Box::new(schema::IdMatchesPath),
22        Box::new(schema::Placement),
23        Box::new(schema::StatusAllowed),
24        Box::new(schema::Dates),
25        Box::new(schema::RequiredByStatus),
26        Box::new(ids::UniqueIds),
27        Box::new(ids::AliasesClean),
28        Box::new(ids::AliasTableFrozen),
29        Box::new(links::LinksResolve),
30        Box::new(links::NoPathCites),
31        Box::new(links::RelationsResolve),
32        Box::new(links::AnchorsUnique),
33        Box::new(links::GovernsExists),
34        Box::new(cites::CitesOutside),
35        Box::new(lifecycle::SupersedePairs),
36        Box::new(lifecycle::ForwardOnly),
37        Box::new(lifecycle::Sealed),
38        Box::new(lifecycle::UpdatedMoves),
39        Box::new(visibility::NotInPublic),
40        Box::new(visibility::NoLocalCites),
41        Box::new(visibility::ExternalCites),
42        Box::new(placement::OwnerMatches),
43        Box::new(attachments::Registered),
44        Box::new(attachments::SizeLimit),
45        Box::new(attachments::HashesMatch),
46        Box::new(attachments::StoredExist),
47        Box::new(forbid::Forbidden),
48        Box::new(commands::VerifyPasses),
49        Box::new(commands::VerifyDeclared),
50        Box::new(commands::GeneratedInSync),
51        Box::new(guarded::GuardsPass),
52    ]
53}