1#[allow(missing_docs)] #[non_exhaustive]
53#[derive(
54 ::std::clone::Clone, ::std::cmp::Eq, ::std::cmp::Ord, ::std::cmp::PartialEq, ::std::cmp::PartialOrd, ::std::fmt::Debug, ::std::hash::Hash,
55)]
56pub enum SingularConnectorOperator {
57 #[allow(missing_docs)] Addition,
59 #[allow(missing_docs)] Division,
61 #[allow(missing_docs)] EqualTo,
63 #[allow(missing_docs)] MaskAll,
65 #[allow(missing_docs)] MaskFirstN,
67 #[allow(missing_docs)] MaskLastN,
69 #[allow(missing_docs)] Multiplication,
71 #[allow(missing_docs)] NoOp,
73 #[allow(missing_docs)] Projection,
75 #[allow(missing_docs)] Subtraction,
77 #[allow(missing_docs)] ValidateNonNegative,
79 #[allow(missing_docs)] ValidateNonNull,
81 #[allow(missing_docs)] ValidateNonZero,
83 #[allow(missing_docs)] ValidateNumeric,
85 #[deprecated(note = "Don't directly match on `Unknown`. See the docs on this enum for the correct way to handle unknown variants.")]
87 Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue),
88}
89impl ::std::convert::From<&str> for SingularConnectorOperator {
90 fn from(s: &str) -> Self {
91 match s {
92 "ADDITION" => SingularConnectorOperator::Addition,
93 "DIVISION" => SingularConnectorOperator::Division,
94 "EQUAL_TO" => SingularConnectorOperator::EqualTo,
95 "MASK_ALL" => SingularConnectorOperator::MaskAll,
96 "MASK_FIRST_N" => SingularConnectorOperator::MaskFirstN,
97 "MASK_LAST_N" => SingularConnectorOperator::MaskLastN,
98 "MULTIPLICATION" => SingularConnectorOperator::Multiplication,
99 "NO_OP" => SingularConnectorOperator::NoOp,
100 "PROJECTION" => SingularConnectorOperator::Projection,
101 "SUBTRACTION" => SingularConnectorOperator::Subtraction,
102 "VALIDATE_NON_NEGATIVE" => SingularConnectorOperator::ValidateNonNegative,
103 "VALIDATE_NON_NULL" => SingularConnectorOperator::ValidateNonNull,
104 "VALIDATE_NON_ZERO" => SingularConnectorOperator::ValidateNonZero,
105 "VALIDATE_NUMERIC" => SingularConnectorOperator::ValidateNumeric,
106 other => SingularConnectorOperator::Unknown(crate::primitives::sealed_enum_unknown::UnknownVariantValue(other.to_owned())),
107 }
108 }
109}
110impl ::std::str::FromStr for SingularConnectorOperator {
111 type Err = ::std::convert::Infallible;
112
113 fn from_str(s: &str) -> ::std::result::Result<Self, <Self as ::std::str::FromStr>::Err> {
114 ::std::result::Result::Ok(SingularConnectorOperator::from(s))
115 }
116}
117impl SingularConnectorOperator {
118 pub fn as_str(&self) -> &str {
120 match self {
121 SingularConnectorOperator::Addition => "ADDITION",
122 SingularConnectorOperator::Division => "DIVISION",
123 SingularConnectorOperator::EqualTo => "EQUAL_TO",
124 SingularConnectorOperator::MaskAll => "MASK_ALL",
125 SingularConnectorOperator::MaskFirstN => "MASK_FIRST_N",
126 SingularConnectorOperator::MaskLastN => "MASK_LAST_N",
127 SingularConnectorOperator::Multiplication => "MULTIPLICATION",
128 SingularConnectorOperator::NoOp => "NO_OP",
129 SingularConnectorOperator::Projection => "PROJECTION",
130 SingularConnectorOperator::Subtraction => "SUBTRACTION",
131 SingularConnectorOperator::ValidateNonNegative => "VALIDATE_NON_NEGATIVE",
132 SingularConnectorOperator::ValidateNonNull => "VALIDATE_NON_NULL",
133 SingularConnectorOperator::ValidateNonZero => "VALIDATE_NON_ZERO",
134 SingularConnectorOperator::ValidateNumeric => "VALIDATE_NUMERIC",
135 SingularConnectorOperator::Unknown(value) => value.as_str(),
136 }
137 }
138 pub const fn values() -> &'static [&'static str] {
140 &[
141 "ADDITION",
142 "DIVISION",
143 "EQUAL_TO",
144 "MASK_ALL",
145 "MASK_FIRST_N",
146 "MASK_LAST_N",
147 "MULTIPLICATION",
148 "NO_OP",
149 "PROJECTION",
150 "SUBTRACTION",
151 "VALIDATE_NON_NEGATIVE",
152 "VALIDATE_NON_NULL",
153 "VALIDATE_NON_ZERO",
154 "VALIDATE_NUMERIC",
155 ]
156 }
157}
158impl ::std::convert::AsRef<str> for SingularConnectorOperator {
159 fn as_ref(&self) -> &str {
160 self.as_str()
161 }
162}
163impl SingularConnectorOperator {
164 pub fn try_parse(value: &str) -> ::std::result::Result<Self, crate::error::UnknownVariantError> {
168 match Self::from(value) {
169 #[allow(deprecated)]
170 Self::Unknown(_) => ::std::result::Result::Err(crate::error::UnknownVariantError::new(value)),
171 known => Ok(known),
172 }
173 }
174}
175impl ::std::fmt::Display for SingularConnectorOperator {
176 fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
177 match self {
178 SingularConnectorOperator::Addition => write!(f, "ADDITION"),
179 SingularConnectorOperator::Division => write!(f, "DIVISION"),
180 SingularConnectorOperator::EqualTo => write!(f, "EQUAL_TO"),
181 SingularConnectorOperator::MaskAll => write!(f, "MASK_ALL"),
182 SingularConnectorOperator::MaskFirstN => write!(f, "MASK_FIRST_N"),
183 SingularConnectorOperator::MaskLastN => write!(f, "MASK_LAST_N"),
184 SingularConnectorOperator::Multiplication => write!(f, "MULTIPLICATION"),
185 SingularConnectorOperator::NoOp => write!(f, "NO_OP"),
186 SingularConnectorOperator::Projection => write!(f, "PROJECTION"),
187 SingularConnectorOperator::Subtraction => write!(f, "SUBTRACTION"),
188 SingularConnectorOperator::ValidateNonNegative => write!(f, "VALIDATE_NON_NEGATIVE"),
189 SingularConnectorOperator::ValidateNonNull => write!(f, "VALIDATE_NON_NULL"),
190 SingularConnectorOperator::ValidateNonZero => write!(f, "VALIDATE_NON_ZERO"),
191 SingularConnectorOperator::ValidateNumeric => write!(f, "VALIDATE_NUMERIC"),
192 SingularConnectorOperator::Unknown(value) => write!(f, "{value}"),
193 }
194 }
195}