pub mod naming;
use crate::{
error::ErrorTree,
node::{Schema, VisitableNode},
visit::ValidateVisitor,
};
pub(crate) fn validate_schema(schema: &Schema) -> Result<(), ErrorTree> {
let mut errors = validate_nodes(schema);
validate_global(schema, &mut errors);
errors.result()
}
fn validate_nodes(schema: &Schema) -> ErrorTree {
let mut visitor = ValidateVisitor::new();
schema.accept(&mut visitor);
visitor.into_errors()
}
fn validate_global(schema: &Schema, errors: &mut ErrorTree) {
naming::validate_entity_naming(schema, errors);
}