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}