#[non_exhaustive]pub enum Violation {
EmptyTest(EmptyTestViolation),
Cycle(CycleViolation),
FilePattern(FilePatternViolation),
FileDependency(FileDependencyViolation),
ExternalModuleDependency(ExternalModuleDependencyViolation),
CustomFile(CustomFileViolation),
LayerDependency(LayerDependencyViolation),
SliceDependency(SliceDependencyViolation),
MetricZone(MetricZoneViolation),
CustomMetric(CustomMetricViolation),
MetricThreshold(MetricThresholdViolation),
MetricPredicate(MetricPredicateViolation),
}Expand description
One data-carrying disagreement between a project and an architecture rule.
A complete rule result is Vec<Violation>: an empty vector means the rule passed. This enum
deliberately contains no user-facing prose; the testing layer formats each variant later.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
EmptyTest(EmptyTestViolation)
The rule selected no subject and therefore could not judge its predicate.
Cycle(CycleViolation)
A circular path exists in the selected projected graph.
FilePattern(FilePatternViolation)
A file disagrees with a name or location predicate.
FileDependency(FileDependencyViolation)
An internal dependency disagrees with a relational file rule.
ExternalModuleDependency(ExternalModuleDependencyViolation)
An external crate dependency disagrees with a relational file rule.
CustomFile(CustomFileViolation)
A file disagrees with a user-defined predicate.
LayerDependency(LayerDependencyViolation)
An internal dependency disagrees with a named-layer policy.
SliceDependency(SliceDependencyViolation)
A projected dependency disagrees with a slice policy.
MetricZone(MetricZoneViolation)
A file component lies inside a discouraged metrics zone.
CustomMetric(CustomMetricViolation)
A user-defined type metric did not satisfy its predicate.
MetricThreshold(MetricThresholdViolation)
A metric value did not meet an exact numeric threshold.
MetricPredicate(MetricPredicateViolation)
A built-in metric value did not satisfy a user predicate.
Implementations§
Source§impl Violation
impl Violation
Sourcepub const fn kind(&self) -> ViolationKind
pub const fn kind(&self) -> ViolationKind
Returns this violation’s stable family.
Sourcepub const fn as_empty_test(&self) -> Option<&EmptyTestViolation>
pub const fn as_empty_test(&self) -> Option<&EmptyTestViolation>
Returns the empty-test data when this is an empty-test violation.
Sourcepub const fn as_cycle(&self) -> Option<&CycleViolation>
pub const fn as_cycle(&self) -> Option<&CycleViolation>
Returns the cycle data when this is a cycle violation.
Sourcepub const fn as_file_pattern(&self) -> Option<&FilePatternViolation>
pub const fn as_file_pattern(&self) -> Option<&FilePatternViolation>
Returns the file-pattern data when this is a file-pattern violation.
Sourcepub const fn as_file_dependency(&self) -> Option<&FileDependencyViolation>
pub const fn as_file_dependency(&self) -> Option<&FileDependencyViolation>
Returns the file-dependency data when this is a file-dependency violation.
Sourcepub const fn as_external_module_dependency(
&self,
) -> Option<&ExternalModuleDependencyViolation>
pub const fn as_external_module_dependency( &self, ) -> Option<&ExternalModuleDependencyViolation>
Returns the external-module data when this is an external-module dependency violation.
Sourcepub const fn as_custom_file(&self) -> Option<&CustomFileViolation>
pub const fn as_custom_file(&self) -> Option<&CustomFileViolation>
Returns the custom-file data when this is a custom predicate violation.
Sourcepub const fn as_layer_dependency(&self) -> Option<&LayerDependencyViolation>
pub const fn as_layer_dependency(&self) -> Option<&LayerDependencyViolation>
Returns the named-layer dependency data when this is a layer violation.
Sourcepub const fn as_slice_dependency(&self) -> Option<&SliceDependencyViolation>
pub const fn as_slice_dependency(&self) -> Option<&SliceDependencyViolation>
Returns the projected slice dependency data when this is a slice violation.
Sourcepub const fn as_metric_zone(&self) -> Option<&MetricZoneViolation>
pub const fn as_metric_zone(&self) -> Option<&MetricZoneViolation>
Returns metric-zone data when this is a distance-zone violation.
Sourcepub const fn as_custom_metric(&self) -> Option<&CustomMetricViolation>
pub const fn as_custom_metric(&self) -> Option<&CustomMetricViolation>
Returns custom-metric data when a user predicate rejected a type value.
Sourcepub const fn as_metric_threshold(&self) -> Option<&MetricThresholdViolation>
pub const fn as_metric_threshold(&self) -> Option<&MetricThresholdViolation>
Returns numeric threshold data when a metric value missed its boundary.
Sourcepub const fn as_metric_predicate(&self) -> Option<&MetricPredicateViolation>
pub const fn as_metric_predicate(&self) -> Option<&MetricPredicateViolation>
Returns built-in metric predicate data when a callback rejected a value.