vyre-spec 0.1.1

Frozen data contracts for vyre — OpSpec, AlgebraicLaw, Category, IntrinsicTable
Documentation
//! Frozen atomic-operation discriminants for backend intrinsic metadata.

/// Atomic operation kind in the frozen data contract.
///
/// Stability: frozen as of v0.4.0-alpha.2. Downstream matches must include a
/// fallback arm so the data contract can grow without breaking SemVer.
/// Example: `AtomicOp::CompareExchange` identifies a compare-and-exchange
/// primitive without binding it to one backend's spelling.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Deserialize, serde::Serialize)]
pub enum AtomicOp {
    /// Atomic add.
    Add,
    /// Atomic bitwise OR.
    Or,
    /// Atomic bitwise AND.
    And,
    /// Atomic bitwise XOR.
    Xor,
    /// Atomic minimum.
    Min,
    /// Atomic maximum.
    Max,
    /// Atomic exchange.
    Exchange,
    /// Atomic compare-and-exchange.
    CompareExchange,
}