Expand description
Main validator implementation
This module provides the core Validator struct that orchestrates all validation
operations and manages caching, custom rules, and configuration.
§Features
- Schema-based validation: Validate data against predefined schemas
- Custom validation rules: Extend validation with custom business logic
- Caching: Improve performance with result caching
- Array validation: Specialized validation for scientific arrays
- Quality analysis: Generate comprehensive data quality reports
§Examples
§Basic validation
use scirs2_core::validation::data::{Validator, ValidationConfig, ValidationSchema, DataType};
let config = ValidationConfig::default();
let validator = Validator::new(config)?;
let schema = ValidationSchema::new()
.name("user_schema")
.require_field("name", DataType::String)
.require_field("age", DataType::Integer);
let data = serde_json::json!({
"name": "John Doe",
"age": 30
});
let result = validator.validate(&data, &schema)?;
assert!(result.is_valid());§Array validation
use scirs2_core::validation::data::{Validator, ValidationConfig, ArrayValidationConstraints};
use ::ndarray::Array2;
let config = ValidationConfig::default();
let validator = Validator::new(config.clone())?;
let data = Array2::from_shape_vec((3, 2), vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0])?;
let constraints = ArrayValidationConstraints::new()
.withshape(vec![3, 2])
.check_numeric_quality();
let result = validator.validate_ndarray(&data, &constraints, &config)?;
assert!(result.is_valid());Structs§
- Validator
- Main data validator with comprehensive validation capabilities
Traits§
- Validation
Rule - Trait for custom validation rules