dpp/validation/json_schema_validator/methods/new/
mod.rs

1mod v0;
2
3use crate::data_contract::JsonValue;
4use crate::validation::JsonSchemaValidator;
5use crate::ProtocolError;
6use platform_version::version::PlatformVersion;
7use std::sync::RwLock;
8
9impl Default for JsonSchemaValidator {
10    fn default() -> Self {
11        Self::new()
12    }
13}
14
15impl JsonSchemaValidator {
16    pub fn new() -> Self {
17        Self {
18            validator: RwLock::new(None),
19        }
20    }
21
22    pub fn new_compiled(
23        json_schema: &JsonValue,
24        platform_version: &PlatformVersion,
25    ) -> Result<Self, ProtocolError> {
26        match platform_version.dpp.validation.json_schema_validator.new {
27            0 => Self::new_compiled_v0(json_schema, platform_version),
28            version => Err(ProtocolError::UnknownVersionMismatch {
29                method: "JsonSchemaValidator::new_compiled".to_string(),
30                known_versions: vec![0],
31                received: version,
32            }),
33        }
34    }
35}