pub(super) use crate::adapters::analyzers::iosp::{
CallOccurrence, Classification, ComplexityMetrics, FunctionAnalysis, LogicOccurrence,
};
pub(super) use crate::adapters::report::test_support::{make_analysis, make_result};
pub(super) use crate::report::json::*;
pub(super) use crate::report::AnalysisResult;
mod functions;
mod sections;
mod srp_complexity_severity;
mod summary_fields_and_orphan;
mod violations_and_dups;
pub(super) fn json_value(analysis: &AnalysisResult) -> serde_json::Value {
let json = crate::report::json::build_json_string(analysis);
serde_json::from_str(&json).expect("reporter must emit valid JSON")
}
pub(super) fn function_named<'a>(v: &'a serde_json::Value, name: &str) -> &'a serde_json::Value {
v["functions"]
.as_array()
.and_then(|a| a.iter().find(|x| x["name"] == name))
.unwrap_or_else(|| panic!("function `{name}` present"))
}