use crate::adapters::analyzers::structural::StructuralWarning;
use crate::domain::{Dimension, Finding, Severity};
pub(super) struct StructuralPieces {
pub common: Finding,
pub code: String,
pub detail: String,
}
pub(super) fn structural_pieces(w: &StructuralWarning, dim: Dimension) -> StructuralPieces {
let code = w.kind.code().to_string();
let detail = w.kind.detail().to_string();
let dim_prefix = match dim {
Dimension::Srp => "srp",
Dimension::Coupling => "coupling",
_ => "structural",
};
StructuralPieces {
common: Finding {
file: w.file.clone(),
line: w.line,
column: 0,
dimension: dim,
rule_id: format!("{}/structural/{}", dim_prefix, code.to_lowercase()),
message: format!("{}: '{}' \u{2014} {}", code, w.name, detail),
severity: Severity::Medium,
suppressed: w.suppressed,
},
code,
detail,
}
}