Skip to main content

smelt_validator/rules/
mod.rs

1//! Validation rules
2
3mod breaking;
4mod complexity;
5mod visibility;
6
7pub use breaking::BreakingChangeChecker;
8pub use complexity::ComplexityChecker;
9pub use visibility::VisibilityChecker;
10
11use crate::validator::Violation;
12use smelt_core::{IntentRecord, SemanticDelta};
13
14/// Trait for validation rules
15pub trait ValidationRule: Send + Sync {
16    /// Rule name
17    fn name(&self) -> &'static str;
18
19    /// Validate a semantic delta
20    fn validate(&self, delta: &SemanticDelta, intent: Option<&IntentRecord>) -> Vec<Violation>;
21}