use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CallGraphNode {
pub name: String,
pub file_path: String,
pub kind: String,
pub depth: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ImpactNode {
pub name: String,
pub file_path: String,
pub kind: String,
pub distance: i32,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ComplexityResult {
pub name: String,
pub file_path: String,
pub line: u32,
pub fan_out: i64,
pub fan_in: i64,
pub complexity_score: i64,
pub severity: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[allow(dead_code)]
pub struct ModuleDep {
pub source_module: String,
pub target_module: String,
pub imported_names: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct FileStats {
pub file_path: String,
pub symbol_count: i64,
pub functions: i64,
pub structs: i64,
pub enums: i64,
pub public_symbols: i64,
}
#[cfg(feature = "duckdb")]
mod duckdb_impl;
#[cfg(not(feature = "duckdb"))]
mod stub;
#[cfg(feature = "duckdb")]
pub use duckdb_impl::Analytics;
#[cfg(feature = "duckdb")]
pub use duckdb_impl::{SqlColumn, SqlResult};
#[cfg(not(feature = "duckdb"))]
pub use stub::Analytics;