pub struct ValidationRule {
pub id: RuleId,
pub severity: Severity,
pub description: &'static str,
pub check: RuleFn,
pub fix: Option<FixFn>,
}Expand description
A pack-contributed validation rule (ADR-034 §9).
Pack authors declare an array of these in their Pack implementation
(through the runtime PackRuntime::validation_rules() method). Rule IDs
must follow the <pack>/<rule-id> namespace convention.
§Example
ⓘ
use khive_runtime::validation::{ValidationRule, Severity};
fn check_taxa(ctx: &ValidationContext<'_>) -> Vec<Violation> {
// ... domain-specific check ...
vec![]
}
pub const RULES: &[ValidationRule] = &[
ValidationRule {
id: "biology/required-taxa-rank",
severity: Severity::Warning,
description: "All species entities must carry a taxa_rank property",
check: check_taxa,
fix: None,
},
];Fields§
§id: RuleIdStable rule identifier in <pack>/<rule-id> format.
severity: SeverityDefault severity; can be overridden in .khive/kg/rules.yaml.
description: &'static strHuman-readable description shown in kkernel kg validate output.
check: RuleFnWhole-corpus check function.
fix: Option<FixFn>Optional auto-fix function (ADR-034 §7). None for unfixable rules.
Auto Trait Implementations§
impl Freeze for ValidationRule
impl RefUnwindSafe for ValidationRule
impl Send for ValidationRule
impl Sync for ValidationRule
impl Unpin for ValidationRule
impl UnsafeUnpin for ValidationRule
impl UnwindSafe for ValidationRule
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more