archunit/layers/fluentapi/
layer_dependency_rule_builder.rsuse super::LayeredArchitecture;
#[derive(Debug, Clone)]
#[must_use = "a layer policy has no effect until an allowlist or blocklist is selected"]
pub struct LayerDependencyRuleBuilder {
architecture: LayeredArchitecture,
layer_name: String,
}
impl LayerDependencyRuleBuilder {
pub(super) fn new(architecture: LayeredArchitecture, layer_name: String) -> Self {
Self {
architecture,
layer_name,
}
}
pub fn may_only_depend_on_layers(self, layer_names: &[&str]) -> LayeredArchitecture {
self.architecture
.with_allowed_dependencies(self.layer_name, layer_names)
}
pub fn may_not_depend_on_layers(self, layer_names: &[&str]) -> LayeredArchitecture {
self.architecture
.with_forbidden_dependencies(self.layer_name, layer_names)
}
pub const fn architecture(&self) -> &LayeredArchitecture {
&self.architecture
}
#[must_use]
pub fn layer_name(&self) -> &str {
&self.layer_name
}
}