frs/cmds/rsl/output/format/
aliased_import.rs1use super::super::ViolationOutputFormat;
2use super::FormattedRuleViolation;
3use super::format_violation;
4use crate::cmds::rsl::rules::TypedRule;
5use crate::cmds::rsl::rules::aliased_import::AliasedImportRule;
6use crate::cmds::rsl::rules::aliased_import::AliasedImportViolation;
7
8impl FormattedRuleViolation for AliasedImportViolation {
9 fn format(&self, output_format: ViolationOutputFormat) -> String {
10 format_violation(
11 &self.location,
12 <AliasedImportRule as TypedRule>::code(),
13 &format!("use unaliased import `{}` if it doesn't clash", self.unaliased_import),
14 output_format,
15 )
16 }
17}
18
19#[cfg(test)]
20mod tests {
21 use std::path::PathBuf;
22
23 use super::super::super::ViolationOutputFormat;
24 use super::super::FormattedRuleViolation;
25 use crate::cmds::rsl::rules::aliased_import::AliasedImportViolation;
26 use crate::cmds::rsl::rules::common::Location;
27
28 #[test]
29 fn test_aliased_import_violation_when_details_are_present_formats_compact_output() {
30 let violation = AliasedImportViolation {
31 location: Location::new(PathBuf::from("test.rs"), 4, 13),
32 unaliased_import: "std::fmt::Thing".to_owned(),
33 };
34
35 assert_eq!(
36 FormattedRuleViolation::format(&violation, ViolationOutputFormat::Compact),
37 "test.rs:4:13,use unaliased import `std::fmt::Thing` if it doesn't clash"
38 );
39 }
40}