pub trait DomainValidator {
// Required methods
fn domain_name(&self) -> &str;
fn supported_reference_types(&self) -> Vec<ReferenceType>;
fn register_object(
&mut self,
object: DomainObject,
) -> Result<(), BuildError>;
fn resolve_reference(
&self,
reference: &CrossReference,
) -> Option<DomainObject>;
fn validate_reference(
&self,
reference: &CrossReference,
) -> ReferenceValidationResult;
fn get_all_objects(&self) -> Vec<&DomainObject>;
fn clear_objects(&mut self);
}Expand description
Core trait for domain validation
Required Methods§
Sourcefn domain_name(&self) -> &str
fn domain_name(&self) -> &str
Get the name of this domain
Sourcefn supported_reference_types(&self) -> Vec<ReferenceType>
fn supported_reference_types(&self) -> Vec<ReferenceType>
Get the reference types this domain handles
Sourcefn register_object(&mut self, object: DomainObject) -> Result<(), BuildError>
fn register_object(&mut self, object: DomainObject) -> Result<(), BuildError>
Register a domain object
Sourcefn resolve_reference(&self, reference: &CrossReference) -> Option<DomainObject>
fn resolve_reference(&self, reference: &CrossReference) -> Option<DomainObject>
Resolve a reference to a domain object
Sourcefn validate_reference(
&self,
reference: &CrossReference,
) -> ReferenceValidationResult
fn validate_reference( &self, reference: &CrossReference, ) -> ReferenceValidationResult
Validate a cross-reference
Sourcefn get_all_objects(&self) -> Vec<&DomainObject>
fn get_all_objects(&self) -> Vec<&DomainObject>
Get all objects in this domain
Sourcefn clear_objects(&mut self)
fn clear_objects(&mut self)
Clear all registered objects (for rebuilds)