use super::*;
impl CodeMetrics {
#[inline]
#[must_use]
pub fn with_selected(selected: MetricSet) -> Self {
Self {
selected,
..Self::default()
}
}
#[inline]
#[must_use]
pub fn selected(&self) -> MetricSet {
self.selected
}
}
impl fmt::Display for CodeMetrics {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
writeln!(f, "{}", self.nargs)?;
writeln!(f, "{}", self.nexits)?;
writeln!(f, "{}", self.cognitive)?;
writeln!(f, "{}", self.cyclomatic)?;
writeln!(f, "{}", self.halstead)?;
writeln!(f, "{}", self.loc)?;
writeln!(f, "{}", self.nom)?;
writeln!(f, "{}", self.tokens)?;
write!(f, "{}", self.mi)
}
}
impl CodeMetrics {
#[must_use]
pub fn to_wire(&self) -> crate::wire::CodeMetrics {
crate::wire::CodeMetrics::from(self)
}
pub fn merge(&mut self, other: &CodeMetrics) {
self.cognitive.merge(&other.cognitive);
self.cyclomatic.merge(&other.cyclomatic);
self.halstead.merge(&other.halstead);
self.loc.merge(&other.loc);
self.nom.merge(&other.nom);
self.tokens.merge(&other.tokens);
self.mi.merge(&other.mi);
self.nargs.merge(&other.nargs);
self.nexits.merge(&other.nexits);
self.abc.merge(&other.abc);
self.wmc.merge(&other.wmc);
self.npm.merge(&other.npm);
self.npa.merge(&other.npa);
self.selected = self.selected.union(other.selected);
}
}