The codebase currently overuses raw tuples (e.g., Result<(String, String)>), which negatively impacts readability and makes our intent opaque—both to developers and the compiler.
For example:
Result<(String, String)> // What do these values represent?
This introduces potential bugs from misordered usage and lacks semantic meaning.
Proposed Solution:
- Define meaningful types in vocab.rs, such as:
struct Host {
name: String,
addr: String,
}```
- Refactor function signatures and return values to use named structs instead of raw tuples
- Improve IDE/tooling support and code self-documentation in the process
This will make the codebase more intuitive, less error-prone, and easier to evolve over time.