Skip to main content

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