mirror of
https://github.com/storytold/photocraft.git
synced 2026-10-27 19:36:56 -06:00
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>
25 lines
965 B
Rust
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}");
|
|
}
|
|
}
|