pdftract/scripts/count_doc_coverage.sh
jedarden 1c6f26ecaa fix(bf-4mkhv): clean up unused imports in hash.rs
The bead description mentioned compile errors in hash.rs from API drift,
but those errors were either already fixed or misattributed. The API usage
was already correct:
- compute_fingerprint already takes 3 arguments with source
- len() already propagates Result with ?
- read_at method already used correctly
- Catalog fields accessed via trailer correctly

Only cleanup: removed unused std::fs::File and std::io imports.

Verification: notes/bf-4mkhv.md
2026-06-01 09:43:48 -04:00

54 lines
1.5 KiB
Bash
Executable file

#!/bin/bash
# Count public API items and their documentation coverage in pdftract-core
set -euo pipefail
cd "$(git rev-parse --show-toplevel)"
CORE_SRC="crates/pdftract-core/src"
echo "=== pdftract-core Documentation Coverage ==="
echo
# Count public API items by type
echo "Public API item counts:"
grep -rh "^pub " "$CORE_SRC" --include="*.rs" 2>/dev/null | {
total=0
types=0 funcs=0 enums=0 structs=0 traits=0 consts=0 type_aliases=0 modules=0
while read -r line; do
((total++))
case "$line" in
"pub struct"*) ((structs++)) ;;
"pub enum"*) ((enums++)) ;;
"pub fn"*) ((funcs++)) ;;
"pub trait"*) ((traits++)) ;;
"pub const"*) ((consts++)) ;;
"pub type"*) ((type_aliases++)) ;;
"pub mod"*) ((modules++)) ;;
esac
done
echo " Total public items: $total"
echo " - Functions: $funcs"
echo " - Structs: $structs"
echo " - Enums: $enums"
echo " - Traits: $traits"
echo " - Type aliases: $type_aliases"
echo " - Constants: $consts"
echo " - Modules: $modules"
}
echo
echo "=== Detailed coverage by module ==="
for module in $(find "$CORE_SRC" -name "*.rs" -exec grep -l "^pub " {} \; 2>/dev/null | sort); do
module_name="${module#$CORE_SRC/}"
module_name="${module_name%.rs}"
module_name="${module_name//\//::}"
pub_items=$(grep "^pub " "$module" 2>/dev/null | wc -l)
if [ "$pub_items" -gt 0 ]; then
echo "$module_name: $pub_items public items"
fi
done | head -20