neo_solidity/metrics.rs
1//! Code Metrics Module
2//!
3//! Calculates code complexity and quality metrics.
4
5/// Code metrics
6#[derive(Debug, Default, Clone)]
7pub struct CodeMetrics {
8 pub lines_of_code: usize,
9 pub functions: usize,
10 pub contracts: usize,
11 pub cyclomatic_complexity: u32,
12 pub max_nesting_depth: u32,
13}
14
15impl CodeMetrics {
16 pub fn avg_complexity(&self) -> f64 {
17 if self.functions == 0 {
18 0.0
19 } else {
20 self.cyclomatic_complexity as f64 / self.functions as f64
21 }
22 }
23}