Entry point, command dispatch
Clap command definitions (10 command groups)
Command implementations:
container.rs- Container operationscodec.rs- Text codecembedding.rs- Vector operationsspatial.rs- Spatial dataquant.rs- Quantizationtransport.rs- Protocol bindingsenvelope.rs- Metadata envelopeconvert.rs- Format conversioninfo.rs- Information/diagnosticsvalidate.rs- Validation/security
Global CLI configuration via environment variables:
- Log level
- Output format
- Verbose/quiet modes
- Color support
- Validation profile
Structured error types:
CliErrorenum with variants for Io, Codec, Transport, InvalidInput, etc.- Auto-conversion from underlying error types
I/O helpers:
- File read/write (text & binary)
- stdin/stdout support (
"-"marker) - File existence checks
- Parent directory creation
Output formatters:
Printer- Color-aware output (success/error/warning/info)- JSON/text/hex formatting
- Table formatting
- Hex dump (simple & detailed)
- Byte size formatting
General utilities:
- Hex preview/dump
- JSON pretty print
- Byte formatting
- Float list parsing
- String list parsing
use lnmp_cli::{Config, Printer, read_input, write_output};
fn main() {
let config = Config::from_env();
let printer = Printer::new(config);
printer.info("Starting processing...");
match read_input("input.lnmp") {
Ok(data) => {
printer.success("File read successfully");
// Process data...
}
Err(e) => {
printer.error(&format!("Failed: {}", e));
}
}
}- Separation of Concerns: Each module has clear responsibility
- Reusability: Common functions in shared modules
- Configurability: Environment-based config
- Testability: Isolated, testable modules
- Maintainability: Easy to find and modify code