dpp/validation/json_schema_validator/
mod.rs

1pub mod methods;
2
3use crate::data_contract::JsonValue;
4use crate::validation::{DataValidator, SimpleConsensusValidationResult};
5use anyhow::Context;
6use jsonschema::JSONSchema;
7use platform_version::version::PlatformVersion;
8use std::sync::RwLock;
9
10#[derive(Debug)]
11pub struct JsonSchemaValidator {
12    validator: RwLock<Option<JSONSchema>>,
13}
14
15// TODO: Remove?
16impl DataValidator for JsonSchemaValidator {
17    type Item = JsonValue;
18    fn validate(
19        &self,
20        data: &Self::Item,
21        platform_version: &PlatformVersion,
22    ) -> Result<SimpleConsensusValidationResult, crate::ProtocolError> {
23        let result = self
24            .validate(data, platform_version)
25            .context("error during validating json schema")?;
26        Ok(result)
27    }
28}