json-schema-validator-core 1.0.0

Lightning-fast JSON schema validation library with custom error messages and multi-language bindings
Documentation
# JSON Schema Validator Core Examples

## Simple Validation Example

```rust
use json_schema_validator_core::{JsonSchemaValidator, ValidationOptions};
use serde_json::json;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let schema = json!({
        "type": "object",
        "properties": {
            "name": {"type": "string"},
            "age": {"type": "number", "minimum": 0}
        },
        "required": ["name"]
    });

    let valid_data = json!({
        "name": "Alice",
        "age": 30
    });

    let invalid_data = json!({
        "age": -5
    });

    let validator = JsonSchemaValidator::new(schema, ValidationOptions::default())?;

    // Validate and print results
    println!("Valid data: {}", validator.is_valid(&valid_data));
    
    let errors = validator.validate(&invalid_data);
    println!("Invalid data errors:");
    for error in errors {
        println!("  - {}: {}", error.instance_path, error.message);
    }

    Ok(())
}
```

## Advanced Configuration Example

```rust
use json_schema_validator_core::{JsonSchemaValidator, ValidationOptions, SchemaDraft};
use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create custom format validator
    let mut custom_formats = HashMap::new();
    custom_formats.insert("phone".to_string(), |s: &str| -> bool {
        s.len() >= 10 && s.chars().all(|c| c.is_ascii_digit() || c == '-' || c == '(' || c == ')' || c == ' ')
    });

    let options = ValidationOptions {
        draft: SchemaDraft::Draft7,
        custom_formats,
        short_circuit: false, // Collect all errors
        collect_annotations: true,
    };

    let schema = json!({
        "type": "object",
        "properties": {
            "phone": {"type": "string", "format": "phone"},
            "email": {"type": "string", "format": "email"}
        }
    });

    let data = json!({
        "phone": "555-123-4567",
        "email": "user@example.com"
    });

    let validator = JsonSchemaValidator::new(schema, options)?;
    println!("Is valid: {}", validator.is_valid(&data));

    Ok(())
}
```