vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
//! Sub-10-second contribution feedback loop CLI pipeline.
//!
//! Runs every mechanical gate for a proposed operation and emits
//! structured JSON results with per-stage timing.

/// Orchestration pipeline for full conformance suite execution.
pub mod pipeline;

use serde::{Deserialize, Serialize};

/// High-level filter for which ops to validate.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ContributeFilter {
    /// Run on every registered operation.
    All,
    /// Run on a single operation by exact id.
    Op(&'static str),
}

/// Pass / Fail / Skip for a single stage.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "lowercase")]
pub enum StageStatus {
    /// Stage passed with no findings.
    Pass,
    /// Stage failed — findings contain actionable diagnostics.
    Fail,
    /// Stage was skipped — feature not yet available or not applicable.
    Skip,
}

/// A single actionable finding emitted by a stage.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Finding {
    /// Human-readable diagnostic message.
    pub message: String,
}

/// Result of one pipeline stage.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContributeResult {
    /// Stage name (e.g. "signature").
    pub stage_name: String,
    /// Wall time in milliseconds.
    pub duration_ms: u64,
    /// Pass, Fail, or Skip.
    pub status: StageStatus,
    /// Actionable findings from this stage.
    pub findings: Vec<Finding>,
}

/// Full report for one operation.
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ContributeReport {
    /// Operation id.
    pub op_id: String,
    /// Total wall time in milliseconds.
    pub total_duration_ms: u64,
    /// Per-stage results.
    pub stages: Vec<ContributeResult>,
    /// Overall status: Pass only if every stage Pass.
    pub overall_status: StageStatus,
}