vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
//! Composition strategies for multi-op chain testing.
//!
//! Composers generate type-compatible operation chains that test
//! how ops behave when composed together (output of one → input of next).

mod pairwise;

pub use pairwise::PairwiseComposer;

use crate::{ChainSpec, OpSpec};

/// Generates type-compatible operation chains for composition testing.
pub trait CompositionStrategy: Send + Sync {
    /// Generate all valid chains from the given op specs.
    fn generate_chains(&self, specs: &[OpSpec]) -> Vec<ChainSpec>;
}

/// Default set of composition strategies.
#[inline]
pub fn default_composers() -> Vec<Box<dyn CompositionStrategy>> {
    vec![Box::new(PairwiseComposer)]
}