Skip to main content

nominal_api/conjure/objects/scout/compute/api/
unit_operation.rs

1#![allow(deprecated)]
2use std::fmt;
3use std::str;
4#[derive(
5    Debug,
6    Clone,
7    PartialEq,
8    Eq,
9    PartialOrd,
10    Ord,
11    Hash,
12    conjure_object::serde::Deserialize,
13    conjure_object::serde::Serialize,
14)]
15#[serde(crate = "conjure_object::serde")]
16pub enum UnitOperation {
17    #[serde(rename = "UNIT_AS_EXPONENT")]
18    UnitAsExponent,
19    #[serde(rename = "NON_INTEGER_AS_EXPONENT")]
20    NonIntegerAsExponent,
21    #[serde(rename = "FLOOR_DIVISION")]
22    FloorDivision,
23    #[serde(rename = "MODULO")]
24    Modulo,
25    #[serde(rename = "CROSSOVER_COMPARISON")]
26    CrossoverComparison,
27    #[serde(rename = "MAX")]
28    Max,
29    #[serde(rename = "MIN")]
30    Min,
31    #[serde(rename = "MEAN")]
32    Mean,
33    #[serde(rename = "UNION")]
34    Union,
35    #[serde(rename = "ADDITION")]
36    Addition,
37    #[serde(rename = "SUBTRACTION")]
38    Subtraction,
39    #[serde(rename = "UNIT_CONVERSION")]
40    UnitConversion,
41    #[serde(rename = "COMPARISON")]
42    Comparison,
43    #[serde(rename = "TERNARY_OPERATOR")]
44    TernaryOperator,
45    /// An unknown variant.
46    #[serde(untagged)]
47    Unknown(Unknown),
48}
49impl UnitOperation {
50    /// Returns the string representation of the enum.
51    #[inline]
52    pub fn as_str(&self) -> &str {
53        match self {
54            UnitOperation::UnitAsExponent => "UNIT_AS_EXPONENT",
55            UnitOperation::NonIntegerAsExponent => "NON_INTEGER_AS_EXPONENT",
56            UnitOperation::FloorDivision => "FLOOR_DIVISION",
57            UnitOperation::Modulo => "MODULO",
58            UnitOperation::CrossoverComparison => "CROSSOVER_COMPARISON",
59            UnitOperation::Max => "MAX",
60            UnitOperation::Min => "MIN",
61            UnitOperation::Mean => "MEAN",
62            UnitOperation::Union => "UNION",
63            UnitOperation::Addition => "ADDITION",
64            UnitOperation::Subtraction => "SUBTRACTION",
65            UnitOperation::UnitConversion => "UNIT_CONVERSION",
66            UnitOperation::Comparison => "COMPARISON",
67            UnitOperation::TernaryOperator => "TERNARY_OPERATOR",
68            UnitOperation::Unknown(v) => &*v,
69        }
70    }
71}
72impl fmt::Display for UnitOperation {
73    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
74        fmt::Display::fmt(self.as_str(), fmt)
75    }
76}
77impl conjure_object::Plain for UnitOperation {
78    fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
79        conjure_object::Plain::fmt(self.as_str(), fmt)
80    }
81}
82impl str::FromStr for UnitOperation {
83    type Err = conjure_object::plain::ParseEnumError;
84    #[inline]
85    fn from_str(
86        v: &str,
87    ) -> Result<UnitOperation, conjure_object::plain::ParseEnumError> {
88        match v {
89            "UNIT_AS_EXPONENT" => Ok(UnitOperation::UnitAsExponent),
90            "NON_INTEGER_AS_EXPONENT" => Ok(UnitOperation::NonIntegerAsExponent),
91            "FLOOR_DIVISION" => Ok(UnitOperation::FloorDivision),
92            "MODULO" => Ok(UnitOperation::Modulo),
93            "CROSSOVER_COMPARISON" => Ok(UnitOperation::CrossoverComparison),
94            "MAX" => Ok(UnitOperation::Max),
95            "MIN" => Ok(UnitOperation::Min),
96            "MEAN" => Ok(UnitOperation::Mean),
97            "UNION" => Ok(UnitOperation::Union),
98            "ADDITION" => Ok(UnitOperation::Addition),
99            "SUBTRACTION" => Ok(UnitOperation::Subtraction),
100            "UNIT_CONVERSION" => Ok(UnitOperation::UnitConversion),
101            "COMPARISON" => Ok(UnitOperation::Comparison),
102            "TERNARY_OPERATOR" => Ok(UnitOperation::TernaryOperator),
103            v => v.parse().map(|v| UnitOperation::Unknown(Unknown(v))),
104        }
105    }
106}
107impl conjure_object::FromPlain for UnitOperation {
108    type Err = conjure_object::plain::ParseEnumError;
109    #[inline]
110    fn from_plain(
111        v: &str,
112    ) -> Result<UnitOperation, conjure_object::plain::ParseEnumError> {
113        v.parse()
114    }
115}
116///An unknown variant of the UnitOperation enum.
117#[derive(
118    Debug,
119    Clone,
120    PartialEq,
121    Eq,
122    PartialOrd,
123    Ord,
124    Hash,
125    conjure_object::serde::Deserialize,
126    conjure_object::serde::Serialize,
127)]
128#[serde(crate = "conjure_object::serde", transparent)]
129pub struct Unknown(conjure_object::private::Variant);
130impl std::ops::Deref for Unknown {
131    type Target = str;
132    #[inline]
133    fn deref(&self) -> &str {
134        &self.0
135    }
136}
137impl fmt::Display for Unknown {
138    #[inline]
139    fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
140        fmt::Display::fmt(&self.0, fmt)
141    }
142}