Loading codegen/src/dto.rs +6 −1 Original line number Diff line number Diff line Loading @@ -328,8 +328,13 @@ fn unify_operation_types(ops: &Operations, space: &mut RustTypes) { if op.smithy_output == op.output { continue; } let rust::Type::Struct(mut ty) = space[&op.smithy_output].clone() else { panic!() }; assert_eq!(op.name, "GetBucketNotificationConfiguration"); assert_eq!(op.output, "GetBucketNotificationConfigurationOutput"); let rust::Type::Struct(ref origin) = space[&op.smithy_output] else { panic!() }; let mut ty = origin.clone(); ty.name.clone_from(&op.output); // duplicate type assert!(origin.xml_name.is_none()); ty.xml_name = Some(origin.name.clone()); ty }; assert!(space.insert(op.output.clone(), rust::Type::Struct(output_ty)).is_none()); Loading crates/s3s/src/xml/generated.rs +2 −2 Original line number Diff line number Diff line Loading @@ -944,13 +944,13 @@ impl<'xml> Deserialize<'xml> for GetBucketLoggingOutput { impl Serialize for GetBucketNotificationConfigurationOutput { fn serialize<W: Write>(&self, s: &mut Serializer<W>) -> SerResult { s.content("GetBucketNotificationConfigurationOutput", self) s.content("NotificationConfiguration", self) } } impl<'xml> Deserialize<'xml> for GetBucketNotificationConfigurationOutput { fn deserialize(d: &mut Deserializer<'xml>) -> DeResult<Self> { d.named_element("GetBucketNotificationConfigurationOutput", Deserializer::content) d.named_element("NotificationConfiguration", Deserializer::content) } } Loading crates/s3s/tests/xml.rs +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ use s3s::xml; use std::fmt; use rust_utils::default::default; fn deserialize_content<T>(input: &[u8]) -> xml::DeResult<T> where T: for<'xml> xml::DeserializeContent<'xml>, Loading Loading @@ -229,3 +231,16 @@ fn get_bucket_location_output() { test_serde(&val); } } #[test] fn get_bucket_notification_configuration_output() { let xml = "<NotificationConfiguration></NotificationConfiguration>"; let val = deserialize::<s3s::dto::NotificationConfiguration>(xml.as_bytes()).unwrap(); assert_eq!(val, default()); test_serde(&val); let val = deserialize::<s3s::dto::GetBucketNotificationConfigurationOutput>(xml.as_bytes()).unwrap(); assert_eq!(val, default()); test_serde(&val); } Loading
codegen/src/dto.rs +6 −1 Original line number Diff line number Diff line Loading @@ -328,8 +328,13 @@ fn unify_operation_types(ops: &Operations, space: &mut RustTypes) { if op.smithy_output == op.output { continue; } let rust::Type::Struct(mut ty) = space[&op.smithy_output].clone() else { panic!() }; assert_eq!(op.name, "GetBucketNotificationConfiguration"); assert_eq!(op.output, "GetBucketNotificationConfigurationOutput"); let rust::Type::Struct(ref origin) = space[&op.smithy_output] else { panic!() }; let mut ty = origin.clone(); ty.name.clone_from(&op.output); // duplicate type assert!(origin.xml_name.is_none()); ty.xml_name = Some(origin.name.clone()); ty }; assert!(space.insert(op.output.clone(), rust::Type::Struct(output_ty)).is_none()); Loading
crates/s3s/src/xml/generated.rs +2 −2 Original line number Diff line number Diff line Loading @@ -944,13 +944,13 @@ impl<'xml> Deserialize<'xml> for GetBucketLoggingOutput { impl Serialize for GetBucketNotificationConfigurationOutput { fn serialize<W: Write>(&self, s: &mut Serializer<W>) -> SerResult { s.content("GetBucketNotificationConfigurationOutput", self) s.content("NotificationConfiguration", self) } } impl<'xml> Deserialize<'xml> for GetBucketNotificationConfigurationOutput { fn deserialize(d: &mut Deserializer<'xml>) -> DeResult<Self> { d.named_element("GetBucketNotificationConfigurationOutput", Deserializer::content) d.named_element("NotificationConfiguration", Deserializer::content) } } Loading
crates/s3s/tests/xml.rs +15 −0 Original line number Diff line number Diff line Loading @@ -2,6 +2,8 @@ use s3s::xml; use std::fmt; use rust_utils::default::default; fn deserialize_content<T>(input: &[u8]) -> xml::DeResult<T> where T: for<'xml> xml::DeserializeContent<'xml>, Loading Loading @@ -229,3 +231,16 @@ fn get_bucket_location_output() { test_serde(&val); } } #[test] fn get_bucket_notification_configuration_output() { let xml = "<NotificationConfiguration></NotificationConfiguration>"; let val = deserialize::<s3s::dto::NotificationConfiguration>(xml.as_bytes()).unwrap(); assert_eq!(val, default()); test_serde(&val); let val = deserialize::<s3s::dto::GetBucketNotificationConfigurationOutput>(xml.as_bytes()).unwrap(); assert_eq!(val, default()); test_serde(&val); }