Issue
Several library files exceed recommended size limits and contain many functions, suggesting they may benefit from modularization:
Large Files Identified
| File |
Lines |
Functions (approx) |
crates/tokmd-analysis-format/src/lib.rs |
3,163 |
70+ |
crates/tokmd-cockpit/src/lib.rs |
2,766 |
96 |
crates/tokmd-analysis-types/src/lib.rs |
1,852 |
- |
crates/tokmd-analysis-complexity/src/lib.rs |
1,594 |
- |
crates/tokmd-types/src/lib.rs |
1,477 |
- |
crates/tokmd-format/src/lib.rs |
2,139 |
- |
Problem
Large files with many functions:
- Are harder to navigate and understand
- Increase compile times (especially for incremental compilation)
- Reduce code reuse potential
- Make testing and mocking more difficult
- Violate single responsibility principle
Suggested Refactoring
tokmd-analysis-format/src/lib.rs (3,163 lines)
Split into modules by format type:
markdown.rs - Markdown rendering
json.rs - JSON/JSON-LD rendering
xml.rs - XML rendering
visual.rs - SVG, Mermaid, Tree rendering
fun.rs - OBJ, MIDI fun outputs
utils.rs - Shared formatting utilities
tokmd-cockpit/src/lib.rs (2,766 lines)
Split by functionality:
diff.rs - Diff-related operations
coverage.rs - Coverage analysis
gate.rs - Gating logic
report.rs - Report generation
config.rs - Configuration handling
tokmd-format/src/lib.rs (2,139 lines)
Split by output format:
tables.rs - Table formatting
trees.rs - Tree view formatting
stats.rs - Statistics display
utils.rs - Shared utilities
Severity
Medium - Technical debt and maintainability
Issue
Several library files exceed recommended size limits and contain many functions, suggesting they may benefit from modularization:
Large Files Identified
crates/tokmd-analysis-format/src/lib.rscrates/tokmd-cockpit/src/lib.rscrates/tokmd-analysis-types/src/lib.rscrates/tokmd-analysis-complexity/src/lib.rscrates/tokmd-types/src/lib.rscrates/tokmd-format/src/lib.rsProblem
Large files with many functions:
Suggested Refactoring
tokmd-analysis-format/src/lib.rs (3,163 lines)
Split into modules by format type:
markdown.rs- Markdown renderingjson.rs- JSON/JSON-LD renderingxml.rs- XML renderingvisual.rs- SVG, Mermaid, Tree renderingfun.rs- OBJ, MIDI fun outputsutils.rs- Shared formatting utilitiestokmd-cockpit/src/lib.rs (2,766 lines)
Split by functionality:
diff.rs- Diff-related operationscoverage.rs- Coverage analysisgate.rs- Gating logicreport.rs- Report generationconfig.rs- Configuration handlingtokmd-format/src/lib.rs (2,139 lines)
Split by output format:
tables.rs- Table formattingtrees.rs- Tree view formattingstats.rs- Statistics displayutils.rs- Shared utilitiesSeverity
Medium - Technical debt and maintainability