vyre-spec 0.4.1

Frozen data contracts for vyre — OpDef, AlgebraicLaw, Category, IntrinsicTable
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! Frozen ternary-operation discriminants for operation signature metadata.
// TAG RESERVATIONS: Fma=0x01, Select=0x02, 0x03..=0x7F reserved,
// Opaque=0x80.

use crate::extension::ExtensionTernaryOpId;

/// Ternary operation kind in the frozen data contract.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Deserialize, serde::Serialize)]
#[non_exhaustive]
pub enum TernaryOp {
    /// Fused multiply-add.
    Fma,
    /// Ternary select.
    Select,
    /// Extension-declared ternary operator.
    Opaque(ExtensionTernaryOpId),
}