Skip to main content

ailint_core/rules/consistency/
mod.rs

1//! Cross-file consistency rules.
2//! Range: **AIL300 – AIL399**.
3
4pub mod conflicting_rules;
5pub mod duplicate_files;
6pub mod orphaned_document;
7
8pub use conflicting_rules::NoConflictingRulesRule;
9pub use duplicate_files::NoDuplicateGuidanceFilesRule;
10pub use orphaned_document::OrphanedDocumentRule;
11
12use crate::rules::{BatchRule, RuleId};
13
14/// AIL300: two guidance files give contradictory instructions.
15pub const AIL300: RuleId = RuleId::new(300, "no-conflicting-rules");
16/// AIL301: multiple guidance files duplicate the same content.
17pub const AIL301: RuleId = RuleId::new(301, "no-duplicate-guidance-files");
18/// AIL340: guidance file is never referenced by any other document.
19pub const AIL340: RuleId = RuleId::new(340, "orphaned-document");
20
21/// All cross-file batch rules, in registration order.
22pub fn all_batch_rules() -> Vec<Box<dyn BatchRule>> {
23    vec![
24        Box::new(NoConflictingRulesRule),
25        Box::new(NoDuplicateGuidanceFilesRule),
26        Box::new(OrphanedDocumentRule),
27    ]
28}