pub trait SchemaTransaction {
// Required methods
fn get_classes(&self) -> &HashMap<AttrString, SchemaClass>;
fn get_attributes(&self) -> &HashMap<AttrString, SchemaAttribute>;
fn get_attributes_unique(&self) -> &Vec<AttrString> ⓘ;
fn get_reference_types(&self) -> &HashMap<AttrString, SchemaAttribute>;
// Provided methods
fn validate(&self) -> Vec<Result<(), ConsistencyError>> ⓘ { ... }
fn is_replicated(&self, attr: &str) -> bool { ... }
fn is_multivalue(&self, attr: &str) -> Result<bool, SchemaError> { ... }
fn normalise_attr_name(&self, an: &str) -> AttrString { ... }
fn normalise_attr_if_exists(&self, an: &str) -> Option<AttrString> { ... }
fn query_attrs_difference(
&self,
prev_class: &BTreeSet<&str>,
new_class: &BTreeSet<&str>
) -> Result<(BTreeSet<&str>, BTreeSet<&str>), SchemaError> { ... }
}