vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
/// Error returned when bytes cannot be decoded into a [`Value`].
#[derive(Debug, thiserror::Error, Clone, PartialEq, Eq)]
pub enum ValueError {
    /// A wire-format element type tag is unknown.
    #[error("unknown value type tag. Fix: use a supported DataType tag.")]
    UnknownElementTypeTag,
    /// The type is not supported by the reference value decoder.
    #[error("unsupported value type for byte decoding. Fix: add an explicit Value decoder for this type.")]
    UnsupportedElementType,
    /// The decoded byte length does not match the expected fixed width for this type.
    #[error("truncated input: expected {expected} bytes, got {actual}. Fix: provide exactly the element width.")]
    TruncatedInput {
        /// Expected exact byte count.
        expected: usize,
        /// Actual byte count provided by the input.
        actual: usize,
    },
    /// The wire element size disagrees with the declared array element size.
    #[error("array element size mismatch: declared {declared} bytes, wire encoded {wire} bytes. Fix: regenerate the array payload with the declared element width.")]
    MismatchedElementSize {
        /// Element byte width declared by the caller.
        declared: usize,
        /// Element byte width encoded in the wire payload.
        wire: usize,
    },
}