//! Halstead software science DTOs for complexity receipts.
//!//! These serde-stable contract types remain re-exported from the crate root.
useserde::{Deserialize, Serialize};/// Halstead software science metrics computed from operator/operand token counts.
#[derive(Debug, Clone, Serialize, Deserialize)]pubstructHalsteadMetrics{/// Number of distinct operators (n1).
pubdistinct_operators:usize,
/// Number of distinct operands (n2).
pubdistinct_operands:usize,
/// Total number of operators (N1).
pubtotal_operators:usize,
/// Total number of operands (N2).
pubtotal_operands:usize,
/// Program vocabulary: n1 + n2.
pubvocabulary:usize,
/// Program length: N1 + N2.
publength:usize,
/// Volume: N * log2(n).
pubvolume:f64,
/// Difficulty: (n1/2) * (N2/n2).
pubdifficulty:f64,
/// Effort: D * V.
pubeffort:f64,
/// Estimated programming time in seconds: E / 18.
pubtime_seconds:f64,
/// Estimated number of bugs: V / 3000.
pubestimated_bugs:f64,
}