1pub mod analysis;
8pub mod loader;
9pub mod recommend;
10pub mod report;
11
12use anyhow::Result;
13
14pub use loader::DataSource;
15pub use recommend::Recommendations;
16
17pub fn recommend_for(source: &DataSource) -> Result<Recommendations> {
19 let data = loader::load_data(source)?;
20 let spatial = analysis::spatial::analyze(&data)?;
21 let temporal = analysis::temporal::analyze(&data)?;
22 let geometry = analysis::geometry::analyze(&data)?;
23 let density = analysis::density::analyze(&data, &spatial)?;
24 let result = analysis::AnalysisResult {
25 source: source.display_name(),
26 feature_count: data.features.len(),
27 spatial,
28 temporal,
29 geometry,
30 density,
31 };
32 Ok(recommend::generate_recommendations(&result))
33}