Files
photocraft/crates/ui-egui/examples/parity.rs
Brandon ThomasandClaude Opus 5.5 939c8f2c70 Progress docs: target-app parity, gaps, alpha gate, readiness by audience (#2696)
Progress docs per craftrules standards/progress-docs.md: target-app parity (merges parity-estimate.md), gaps, roadmap with alpha gate, readiness by audience (full / mainstream / essentials) with Opus 5.5 hours, and UI, brush, format, hardware and localization parity docs. docs/parity.md is now docs/parity-checklist.md.

The Windows test failure (file_dialog::tests::save_dialogs_remember_where_each_document_was_last_saved) is pre-existing on main: the test hard-codes POSIX paths.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 15:09:04 -04:00

25 lines
965 B
Rust

//! Print Photoshop menu parity and optionally write the Markdown report.
//!
//! ```sh
//! cargo run -p photocraft-ui-egui --example parity -- [--write docs/parity-checklist.md] [--json]
//! ```
//! Usually run through `cargo xtask parity`.
fn main() {
let args: Vec<String> = std::env::args().collect();
let p = photocraft_ui_egui::parity::compute();
if args.iter().any(|a| a == "--json") {
println!("{}", serde_json::to_string_pretty(&p).expect("serialize parity"));
return;
}
println!("Photoshop menu parity: {} / {} live ({:.1}%)", p.live, p.total, p.percent());
for m in &p.menus {
println!(" {:<8} {:>4} / {:<4}", m.menu, m.live, m.total);
}
if let Some(i) = args.iter().position(|a| a == "--write") {
let path = args.get(i + 1).expect("--write needs a path");
std::fs::write(path, p.to_markdown()).unwrap_or_else(|e| panic!("{path}: {e}"));
println!("wrote {path}");
}
}