nominal_api_conjure/conjure/objects/scout/compute/api/
unit_operation.rs1#![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 #[serde(untagged)]
48 Unknown(Unknown),
49}
50impl UnitOperation {
51 #[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#[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}