frs/cmds/rsl/output/
format.rs1use super::ViolationOutputFormat;
2use crate::cmds::rsl::rules::common::Location;
3
4mod aliased_import;
5mod misordered_fn;
6mod misordered_item_group;
7mod misordered_visibility;
8mod nonadjacent_impl;
9mod overqualified_call;
10mod qualified_item;
11mod relative_path;
12mod unqualified_call;
13
14pub trait FormattedRuleViolation: Send + Sync + 'static {
15 fn format(&self, output_format: ViolationOutputFormat) -> String;
16}
17
18pub(super) fn format_violation(
19 location: &Location,
20 code: &str,
21 suggested_fix: &str,
22 output_format: ViolationOutputFormat,
23) -> String {
24 let location = format_location(location);
25 match output_format {
26 ViolationOutputFormat::Compact => format!("{location},{suggested_fix}"),
27 ViolationOutputFormat::Debug => format!("{location},{code},{suggested_fix}"),
28 }
29}
30
31fn format_location(location: &Location) -> String {
32 format!("{}:{}:{}", location.file.display(), location.line, location.column)
33}