Skip to main content

devops_validate/rules/
mod.rs

1//! Declarative rule engine for semantic validation.
2//!
3//! Defines best-practice warnings via simple condition expressions (equality
4//! checks, comparisons, null checks, `contains`) evaluated against YAML data.
5//!
6//! ## Rule format (YAML)
7//!
8//! ```yaml
9//! rules:
10//!   - id: k8s/replicas-1
11//!     condition: '$.spec.replicas == 1'
12//!     severity: warning
13//!     message: 'replicas=1 — consider >=2 for high availability'
14//! ```
15//!
16//! ## Example
17//!
18//! ```rust
19//! use devops_validate::rules::{load_builtin_rules, load_rules_for_type};
20//! use serde_json::json;
21//!
22//! let engine = load_builtin_rules();
23//! let data = json!({ "spec": { "replicas": 1 } });
24//! let diagnostics = engine.evaluate(&data);
25//! assert!(!diagnostics.is_empty());
26//! ```
27
28pub mod engine;
29pub mod loader;
30
31pub use engine::{Rule, RuleCondition, RuleEngine};
32pub use loader::{load_builtin_rules, load_rules_for_type};