description: "counts the number of items with and without documentation",
};
-fn calculate_doc_coverage(krate: clean::Crate, ctx: &DocContext<'_>) -> clean::Crate {
- let mut calc = CoverageCalculator::new(ctx);
+fn calculate_doc_coverage(krate: clean::Crate, ctx: &mut DocContext<'_>) -> clean::Crate {
+ let mut calc = CoverageCalculator { items: Default::default(), ctx };
let krate = calc.fold_crate(krate);
calc.print_results();
struct CoverageCalculator<'a, 'b> {
items: BTreeMap<FileName, ItemCount>,
- ctx: &'a DocContext<'b>,
+ ctx: &'a mut DocContext<'b>,
}
fn limit_filename_len(filename: String) -> String {
}
impl<'a, 'b> CoverageCalculator<'a, 'b> {
- fn new(ctx: &'a DocContext<'b>) -> CoverageCalculator<'a, 'b> {
- CoverageCalculator { items: Default::default(), ctx }
- }
-
fn to_json(&self) -> String {
serde_json::to_string(
&self
}
fn print_results(&self) {
- let output_format = self.ctx.renderinfo.borrow().output_format;
+ let output_format = self.ctx.output_format;
if output_format.is_json() {
println!("{}", self.to_json());
return;
// don't count items in stripped modules
return Some(i);
}
- clean::ImportItem(..) | clean::ExternCrateItem(..) => {
+ clean::ImportItem(..) | clean::ExternCrateItem { .. } => {
// docs on `use` and `extern crate` statements are not displayed, so they're not
// worth counting
return Some(i);