archunit/files/assertion/
custom_file_violation.rsuse crate::files::FileInfo;
#[derive(Debug, Clone, PartialEq, Eq)]
#[non_exhaustive]
pub struct CustomFileViolation {
pub file_info: FileInfo,
pub message: String,
pub is_negated: bool,
}
impl CustomFileViolation {
#[must_use]
pub fn new(file_info: FileInfo, message: impl Into<String>, is_negated: bool) -> Self {
Self {
file_info,
message: message.into(),
is_negated,
}
}
}
#[cfg(test)]
mod tests {
use super::CustomFileViolation;
use crate::files::FileInfo;
#[test]
fn retains_file_requirement_and_mood_as_data() {
let info = FileInfo::new("src/api.rs", "pub fn api() {}\n");
let violation = CustomFileViolation::new(info, "contain no public functions", true);
assert_eq!(violation.file_info.path, "src/api.rs");
assert_eq!(violation.message, "contain no public functions");
assert!(violation.is_negated);
}
}