Skip to main content

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