dpp/data_contract/methods/schema/v0/
mod.rs1use crate::data_contract::{DefinitionName, DocumentName};
2use crate::validation::operations::ProtocolValidationOperation;
3use crate::ProtocolError;
4use platform_value::Value;
5use platform_version::version::PlatformVersion;
6use std::collections::BTreeMap;
7
8pub trait DataContractSchemaMethodsV0 {
9 fn set_document_schemas(
10 &mut self,
11 schemas: BTreeMap<DocumentName, Value>,
12 defs: Option<BTreeMap<DefinitionName, Value>>,
13 full_validation: bool,
14 validation_operations: &mut Vec<ProtocolValidationOperation>,
15 platform_version: &PlatformVersion,
16 ) -> Result<(), ProtocolError>;
17
18 fn set_document_schema(
19 &mut self,
20 name: &str,
21 schema: Value,
22 full_validation: bool,
23 validation_operations: &mut Vec<ProtocolValidationOperation>,
24 platform_version: &PlatformVersion,
25 ) -> Result<(), ProtocolError>;
26
27 fn document_schemas(&self) -> BTreeMap<DocumentName, &Value>;
28 fn schema_defs(&self) -> Option<&BTreeMap<DefinitionName, Value>>;
29 fn set_schema_defs(
30 &mut self,
31 defs: Option<BTreeMap<DefinitionName, Value>>,
32 full_validation: bool,
33 validation_operations: &mut Vec<ProtocolValidationOperation>,
34 platform_version: &PlatformVersion,
35 ) -> Result<(), ProtocolError>;
36}