Module validator

Module validator 

Source
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§

ValidationRule
Trait for custom validation rules