dpp/validation/json_schema_validator/methods/new/
mod.rs1mod 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}