1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use super::utils::BuildResolver;
use crate::write_csv;
use corpus_database::tables::Loader;
use std::path::Path;
fn report_build_categories(loader: &Loader, report_path: &Path) {
let build_resolver = BuildResolver::new(loader);
let strings = loader.load_strings();
let categories = loader.load_crate_categories();
let categories = categories
.iter()
.map(|&(build, category)| (build, build_resolver.resolve(build), &strings[category]));
write_csv!(report_path, categories);
}
fn report_build_keywords(loader: &Loader, report_path: &Path) {
let build_resolver = BuildResolver::new(loader);
let strings = loader.load_strings();
let keywords = loader.load_crate_keywords();
let keywords = keywords
.iter()
.map(|&(build, keyword)| (build, build_resolver.resolve(build), &strings[keyword]));
write_csv!(report_path, keywords);
}
pub fn query(loader: &Loader, report_path: &Path) {
report_build_categories(loader, report_path);
report_build_keywords(loader, report_path);
}