fob_graph/analysis/
stats.rs1use crate::Result;
2use crate::{GraphStatistics, ModuleGraph};
3
4pub fn compute_stats(graph: &ModuleGraph) -> Result<GraphStatistics> {
5 let unused = graph.unused_exports()?;
6 let unreachable = graph.unreachable_modules()?;
7 let external = graph.external_dependencies()?;
8 let modules = graph.modules()?;
9 let entry_points = graph.entry_points()?;
10
11 Ok(GraphStatistics::new(
12 modules.len(),
13 entry_points.len(),
14 external.len(),
15 modules.iter().filter(|m| m.has_side_effects).count(),
16 unused.len(),
17 unreachable.len(),
18 ))
19}