icydb_schema/validate/
mod.rs1pub mod naming;
4
5use crate::{
6 error::ErrorTree,
7 node::{Schema, VisitableNode},
8 visit::ValidateVisitor,
9};
10
11pub(crate) fn validate_schema(schema: &Schema) -> Result<(), ErrorTree> {
13 let mut errors = validate_nodes(schema);
15
16 validate_global(schema, &mut errors);
18
19 errors.result()
20}
21
22fn validate_nodes(schema: &Schema) -> ErrorTree {
24 let mut visitor = ValidateVisitor::new();
25 schema.accept(&mut visitor);
26
27 visitor.errors
28}
29
30fn validate_global(schema: &Schema, errors: &mut ErrorTree) {
32 naming::validate_entity_naming(schema, errors);
33}