nominal_api/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)]
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 #[serde(untagged)]
47 Unknown(Unknown),
48}
49impl UnitOperation {
50 #[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#[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}