# Development Guide This document provides information for developers working on the video_probe project. ## Prerequisites - Rust 1.70+ (https://rustup.rs/) - FFmpeg/ffprobe (for probing video files) ## Build Commands ```bash # Debug build cargo build # Release build cargo build --release # Run tests cargo test # Format code cargo fmt # Run linter cargo clippy ``` ## Project Structure ``` video_probe/ ├── src/ │ ├── main.rs # CLI entry point │ ├── lib.rs # Library interface │ ├── error.rs # Error types │ ├── metadata.rs # Data structures │ ├── probe.rs # ffprobe execution │ ├── parser.rs # JSON parsing │ └── output.rs # Output formatting ├── docs/ │ ├── DEVELOPMENT.md │ ├── USAGE.md │ └── API.md ├── Cargo.toml └── README.md ``` ## Code Conventions - Structs/Enums: PascalCase (e.g., VideoMetadata) - Functions/Methods: snake_case (e.g., probe_video) - Variables: snake_case (e.g., video_path) ## Testing ```bash # Run all tests cargo test # Run with output cargo test -- --nocapture ```