Setting up a development environment
Build the project
Run a development build to verify that your toolchain is set up correctly and all dependencies compile:Cargo downloads and compiles all dependencies automatically on the first build.
Run the application
The
cache/ directory and config.json are auto-created at runtime and are not committed to git. Do not add them to version control.Code quality tools
Run these commands before submitting a pull request:Code style guidelines
- Follow Rust idioms and best practices. Prefer iterators,
?for error propagation, and pattern matching over manual checks. - Use
cargo fmt. Formatting is required. The CI check will fail ifcargo fmt --checkreports any differences. - Use
cargo clippy. All clippy warnings must be resolved before merging. Run with-D warningsto catch everything. - Document public functions. Add doc comments (
///) to anypubfunction or type. Include a brief description and, where non-obvious, an example.
Project structure
src/ modules is self-contained: it owns its UI state, its worker thread, and its channel communication. main.rs owns the top-level UnifiedAvatarManager struct, which holds the active module as an AppState enum variant and dispatches eframe::App::update() calls to it.