162 162 | }
|
163 163 | /// Returns true if this is a [`UnionValue`](crate::types::XmlUnionShape::UnionValue).
|
164 164 | pub fn is_union_value(&self) -> bool {
|
165 165 | self.as_union_value().is_ok()
|
166 166 | }
|
167 167 | /// Returns true if the enum instance is the `Unknown` variant.
|
168 168 | pub fn is_unknown(&self) -> bool {
|
169 169 | matches!(self, Self::Unknown)
|
170 170 | }
|
171 171 | }
|
172 + | static XMLUNIONSHAPE_SCHEMA_ID: ::aws_smithy_schema::ShapeId =
|
173 + | ::aws_smithy_schema::ShapeId::from_static("aws.protocoltests.restxml#XmlUnionShape", "aws.protocoltests.restxml", "XmlUnionShape");
|
174 + | static XMLUNIONSHAPE_MEMBER_STRINGVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
175 + | ::aws_smithy_schema::ShapeId::from_static(
|
176 + | "aws.protocoltests.restxml#XmlUnionShape$stringValue",
|
177 + | "aws.protocoltests.restxml",
|
178 + | "XmlUnionShape",
|
179 + | ),
|
180 + | ::aws_smithy_schema::ShapeType::String,
|
181 + | "stringValue",
|
182 + | 0,
|
183 + | );
|
184 + | static XMLUNIONSHAPE_MEMBER_BOOLEANVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
185 + | ::aws_smithy_schema::ShapeId::from_static(
|
186 + | "aws.protocoltests.restxml#XmlUnionShape$booleanValue",
|
187 + | "aws.protocoltests.restxml",
|
188 + | "XmlUnionShape",
|
189 + | ),
|
190 + | ::aws_smithy_schema::ShapeType::Boolean,
|
191 + | "booleanValue",
|
192 + | 1,
|
193 + | );
|
194 + | static XMLUNIONSHAPE_MEMBER_BYTEVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
195 + | ::aws_smithy_schema::ShapeId::from_static(
|
196 + | "aws.protocoltests.restxml#XmlUnionShape$byteValue",
|
197 + | "aws.protocoltests.restxml",
|
198 + | "XmlUnionShape",
|
199 + | ),
|
200 + | ::aws_smithy_schema::ShapeType::Byte,
|
201 + | "byteValue",
|
202 + | 2,
|
203 + | );
|
204 + | static XMLUNIONSHAPE_MEMBER_SHORTVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
205 + | ::aws_smithy_schema::ShapeId::from_static(
|
206 + | "aws.protocoltests.restxml#XmlUnionShape$shortValue",
|
207 + | "aws.protocoltests.restxml",
|
208 + | "XmlUnionShape",
|
209 + | ),
|
210 + | ::aws_smithy_schema::ShapeType::Short,
|
211 + | "shortValue",
|
212 + | 3,
|
213 + | );
|
214 + | static XMLUNIONSHAPE_MEMBER_INTEGERVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
215 + | ::aws_smithy_schema::ShapeId::from_static(
|
216 + | "aws.protocoltests.restxml#XmlUnionShape$integerValue",
|
217 + | "aws.protocoltests.restxml",
|
218 + | "XmlUnionShape",
|
219 + | ),
|
220 + | ::aws_smithy_schema::ShapeType::Integer,
|
221 + | "integerValue",
|
222 + | 4,
|
223 + | );
|
224 + | static XMLUNIONSHAPE_MEMBER_LONGVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
225 + | ::aws_smithy_schema::ShapeId::from_static(
|
226 + | "aws.protocoltests.restxml#XmlUnionShape$longValue",
|
227 + | "aws.protocoltests.restxml",
|
228 + | "XmlUnionShape",
|
229 + | ),
|
230 + | ::aws_smithy_schema::ShapeType::Long,
|
231 + | "longValue",
|
232 + | 5,
|
233 + | );
|
234 + | static XMLUNIONSHAPE_MEMBER_FLOATVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
235 + | ::aws_smithy_schema::ShapeId::from_static(
|
236 + | "aws.protocoltests.restxml#XmlUnionShape$floatValue",
|
237 + | "aws.protocoltests.restxml",
|
238 + | "XmlUnionShape",
|
239 + | ),
|
240 + | ::aws_smithy_schema::ShapeType::Float,
|
241 + | "floatValue",
|
242 + | 6,
|
243 + | );
|
244 + | static XMLUNIONSHAPE_MEMBER_DOUBLEVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
245 + | ::aws_smithy_schema::ShapeId::from_static(
|
246 + | "aws.protocoltests.restxml#XmlUnionShape$doubleValue",
|
247 + | "aws.protocoltests.restxml",
|
248 + | "XmlUnionShape",
|
249 + | ),
|
250 + | ::aws_smithy_schema::ShapeType::Double,
|
251 + | "doubleValue",
|
252 + | 7,
|
253 + | );
|
254 + | static XMLUNIONSHAPE_MEMBER_UNIONVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
255 + | ::aws_smithy_schema::ShapeId::from_static(
|
256 + | "aws.protocoltests.restxml#XmlUnionShape$unionValue",
|
257 + | "aws.protocoltests.restxml",
|
258 + | "XmlUnionShape",
|
259 + | ),
|
260 + | ::aws_smithy_schema::ShapeType::Union,
|
261 + | "unionValue",
|
262 + | 8,
|
263 + | );
|
264 + | static XMLUNIONSHAPE_MEMBER_STRUCTVALUE: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_member(
|
265 + | ::aws_smithy_schema::ShapeId::from_static(
|
266 + | "aws.protocoltests.restxml#XmlUnionShape$structValue",
|
267 + | "aws.protocoltests.restxml",
|
268 + | "XmlUnionShape",
|
269 + | ),
|
270 + | ::aws_smithy_schema::ShapeType::Structure,
|
271 + | "structValue",
|
272 + | 9,
|
273 + | );
|
274 + | static XMLUNIONSHAPE_SCHEMA: ::aws_smithy_schema::Schema = ::aws_smithy_schema::Schema::new_struct(
|
275 + | XMLUNIONSHAPE_SCHEMA_ID,
|
276 + | ::aws_smithy_schema::ShapeType::Union,
|
277 + | &[
|
278 + | &XMLUNIONSHAPE_MEMBER_STRINGVALUE,
|
279 + | &XMLUNIONSHAPE_MEMBER_BOOLEANVALUE,
|
280 + | &XMLUNIONSHAPE_MEMBER_BYTEVALUE,
|
281 + | &XMLUNIONSHAPE_MEMBER_SHORTVALUE,
|
282 + | &XMLUNIONSHAPE_MEMBER_INTEGERVALUE,
|
283 + | &XMLUNIONSHAPE_MEMBER_LONGVALUE,
|
284 + | &XMLUNIONSHAPE_MEMBER_FLOATVALUE,
|
285 + | &XMLUNIONSHAPE_MEMBER_DOUBLEVALUE,
|
286 + | &XMLUNIONSHAPE_MEMBER_UNIONVALUE,
|
287 + | &XMLUNIONSHAPE_MEMBER_STRUCTVALUE,
|
288 + | ],
|
289 + | );
|
290 + | impl XmlUnionShape {
|
291 + | /// The schema for this shape.
|
292 + | pub const SCHEMA: &'static ::aws_smithy_schema::Schema = &XMLUNIONSHAPE_SCHEMA;
|
293 + | }
|
294 + | impl ::aws_smithy_schema::serde::SerializableStruct for XmlUnionShape {
|
295 + | #[allow(unused_variables, clippy::diverging_sub_expression)]
|
296 + | fn serialize_members(
|
297 + | &self,
|
298 + | ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
|
299 + | ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
|
300 + | match self {
|
301 + | Self::StringValue(val) => {
|
302 + | ser.write_string(&XMLUNIONSHAPE_MEMBER_STRINGVALUE, val)?;
|
303 + | }
|
304 + | Self::BooleanValue(val) => {
|
305 + | ser.write_boolean(&XMLUNIONSHAPE_MEMBER_BOOLEANVALUE, *val)?;
|
306 + | }
|
307 + | Self::ByteValue(val) => {
|
308 + | ser.write_byte(&XMLUNIONSHAPE_MEMBER_BYTEVALUE, *val)?;
|
309 + | }
|
310 + | Self::ShortValue(val) => {
|
311 + | ser.write_short(&XMLUNIONSHAPE_MEMBER_SHORTVALUE, *val)?;
|
312 + | }
|
313 + | Self::IntegerValue(val) => {
|
314 + | ser.write_integer(&XMLUNIONSHAPE_MEMBER_INTEGERVALUE, *val)?;
|
315 + | }
|
316 + | Self::LongValue(val) => {
|
317 + | ser.write_long(&XMLUNIONSHAPE_MEMBER_LONGVALUE, *val)?;
|
318 + | }
|
319 + | Self::FloatValue(val) => {
|
320 + | ser.write_float(&XMLUNIONSHAPE_MEMBER_FLOATVALUE, *val)?;
|
321 + | }
|
322 + | Self::DoubleValue(val) => {
|
323 + | ser.write_double(&XMLUNIONSHAPE_MEMBER_DOUBLEVALUE, *val)?;
|
324 + | }
|
325 + | Self::UnionValue(val) => {
|
326 + | ser.write_struct(&XMLUNIONSHAPE_MEMBER_UNIONVALUE, val)?;
|
327 + | }
|
328 + | Self::StructValue(val) => {
|
329 + | ser.write_struct(&XMLUNIONSHAPE_MEMBER_STRUCTVALUE, val)?;
|
330 + | }
|
331 + | Self::Unknown => return Err(::aws_smithy_schema::serde::SerdeError::custom("cannot serialize unknown union variant")),
|
332 + | }
|
333 + | Ok(())
|
334 + | }
|
335 + | }
|
336 + | impl XmlUnionShape {
|
337 + | /// Deserializes this union from a [`ShapeDeserializer`].
|
338 + | pub fn deserialize(
|
339 + | deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
|
340 + | ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
|
341 + | let mut result: ::std::option::Option<Self> = ::std::option::Option::None;
|
342 + | #[allow(unused_variables, unreachable_code, clippy::single_match, clippy::match_single_binding)]
|
343 + | deserializer.read_struct(&XMLUNIONSHAPE_SCHEMA, &mut |member, deser| {
|
344 + | result = ::std::option::Option::Some(match member.member_index() {
|
345 + | Some(0) => Self::StringValue(deser.read_string(member)?),
|
346 + | Some(1) => Self::BooleanValue(deser.read_boolean(member)?),
|
347 + | Some(2) => Self::ByteValue(deser.read_byte(member)?),
|
348 + | Some(3) => Self::ShortValue(deser.read_short(member)?),
|
349 + | Some(4) => Self::IntegerValue(deser.read_integer(member)?),
|
350 + | Some(5) => Self::LongValue(deser.read_long(member)?),
|
351 + | Some(6) => Self::FloatValue(deser.read_float(member)?),
|
352 + | Some(7) => Self::DoubleValue(deser.read_double(member)?),
|
353 + | Some(8) => Self::UnionValue(Box::new(crate::types::XmlUnionShape::deserialize(deser)?)),
|
354 + | Some(9) => Self::StructValue(crate::types::XmlNestedUnionStruct::deserialize(deser)?),
|
355 + | _ => Self::Unknown,
|
356 + | });
|
357 + | Ok(())
|
358 + | })?;
|
359 + | result.ok_or_else(|| ::aws_smithy_schema::serde::SerdeError::custom("expected a union variant"))
|
360 + | }
|
361 + | }
|