vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
//! Golden-freezing subcommand.

use std::path::PathBuf;

use clap::Parser;

/// Arguments for freezing golden files.
#[derive(Debug, Parser)]
pub struct Args {}

/// Freeze missing golden files for every registered operation.
pub fn run(_args: Args) -> Result<(), Box<dyn std::error::Error>> {
    let out_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("goldens");
    let specs = crate::op_registry::all_specs();
    let frozen = crate::verify::golden::freeze_goldens(&specs, &out_dir)
        .map_err(|err| format!("Fix: failed to freeze goldens: {err}"))?;
    println!("Frozen {frozen} new golden files to {}", out_dir.display());
    Ok(())
}