Skip to main content

Crate pdk_json_validator_lib

Crate pdk_json_validator_lib 

Source
Expand description

PDK JSON Validator Library

Provides JSON validation functionality with configurable constraints, supporting incremental/streaming validation of JSON payloads.

  • Incremental JSON validation (chunk-based streaming)
  • Configurable constraints (depth, array length, object entries, string/key lengths)
  • UTF-8 boundary handling for incomplete chunks

§Primary types

§Example

use pdk::json_validator::{JsonValidatorBuilder, ValidationResult, ValidationError};

let mut validator = JsonValidatorBuilder::new()
    .with_max_depth(10)
    .with_max_array_length(1000)
    .with_max_string_length(10000)
    .build();

// Validate first chunk
match validator.validate_chunk(b"{\"key\": \"val", false) {
    Ok(ValidationResult::Incomplete) => {
        // Wait for more chunks
    }
    Err(e) => {
        eprintln!("Validation error: {}", e);
    }
    _ => {}
}

// Validate final chunk
match validator.validate_chunk(b"ue\"}", true) {
    Ok(ValidationResult::Complete) => {
        // JSON valid
    }
    Err(ValidationError::MaxDepthExceeded) => {
        // Handle specific constraint violation
    }
    Err(e) => {
        eprintln!("Validation error: {}", e);
    }
}

Structs§

JsonValidator
JSON validator with configurable constraints.
JsonValidatorBuilder
Builder for creating JSON validation instances

Enums§

ValidationError
Errors that can occur during JSON validation
ValidationResult
Result of validating a JSON chunk