archunit/files/fluentapi/
negated_match_pattern_file_condition_builder.rsuse crate::{
common::{Filter, PatternError, ProjectLocator},
files::FileInfo,
};
use super::{
CustomFileCondition, DependOnExternalModuleConditionBuilder, DependOnFileConditionBuilder,
FileConditionBuilder, MatchPatternFileCondition, MatchPatternFileConditionBuilder,
};
#[derive(Debug, Clone)]
#[must_use = "a file mood has no effect until a predicate is selected and checked"]
pub struct NegatedMatchPatternFileConditionBuilder {
condition: MatchPatternFileConditionBuilder,
}
impl NegatedMatchPatternFileConditionBuilder {
pub(super) const fn new(scope: FileConditionBuilder) -> Self {
Self {
condition: MatchPatternFileConditionBuilder::new(scope, true),
}
}
pub const fn condition(&self) -> &MatchPatternFileConditionBuilder {
&self.condition
}
pub const fn scope(&self) -> &FileConditionBuilder {
self.condition.scope()
}
#[must_use]
pub const fn is_negated(&self) -> bool {
self.condition.is_negated()
}
#[must_use]
pub const fn project_locator(&self) -> &ProjectLocator {
self.condition.project_locator()
}
#[must_use]
pub fn filters(&self) -> &[Filter] {
self.condition.filters()
}
#[must_use]
pub const fn selector_error(&self) -> Option<&PatternError> {
self.condition.selector_error()
}
pub fn have_name(
self,
pattern: impl Into<crate::common::PatternSpec>,
) -> MatchPatternFileCondition {
self.condition.have_name(pattern)
}
pub fn be_in_folder(
self,
pattern: impl Into<crate::common::PatternSpec>,
) -> MatchPatternFileCondition {
self.condition.be_in_folder(pattern)
}
pub fn be_in_path(
self,
pattern: impl Into<crate::common::PatternSpec>,
) -> MatchPatternFileCondition {
self.condition.be_in_path(pattern)
}
pub fn depend_on_files(self) -> DependOnFileConditionBuilder {
self.condition.depend_on_files()
}
pub fn depend_on_external_modules(self) -> DependOnExternalModuleConditionBuilder {
self.condition.depend_on_external_modules()
}
pub fn adhere_to<F>(self, predicate: F, message: impl Into<String>) -> CustomFileCondition
where
F: Fn(&FileInfo) -> bool + Send + Sync + 'static,
{
self.condition.adhere_to(predicate, message)
}
}