dpp/data_contract/methods/schema/v0/
mod.rs

1use 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}