diff --git a/rust-runtime/aws-smithy-types/src/blob.rs b/rust-runtime/aws-smithy-types/src/blob.rs index c428a42b3f..2916f8bd96 100644 --- a/rust-runtime/aws-smithy-types/src/blob.rs +++ b/rust-runtime/aws-smithy-types/src/blob.rs @@ -44,72 +44,71 @@ impl AsRef<[u8]> for Blob { } #[cfg(all(aws_sdk_unstable, feature = "serde-serialize"))] -impl Serialize for Blob { - fn serialize(&self, serializer: S) -> Result - where - S: serde::Serializer, - { - if serializer.is_human_readable() { - serializer.serialize_str(&crate::base64::encode(&self.inner)) - } else { - serializer.serialize_bytes(&self.inner) +mod serde_serialize { + impl Serialize for Blob { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + if serializer.is_human_readable() { + serializer.serialize_str(&crate::base64::encode(&self.inner)) + } else { + serializer.serialize_bytes(&self.inner) + } } } } #[cfg(all(aws_sdk_unstable, feature = "serde-deserialize"))] -struct HumanReadableBlobVisitor; - -#[cfg(all(aws_sdk_unstable, feature = "serde-deserialize"))] -impl<'de> Visitor<'de> for HumanReadableBlobVisitor { - type Value = Blob; - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("expected base64 encoded string") - } - - fn visit_str(self, v: &str) -> Result - where - E: serde::de::Error, - { - match base64::decode(v) { - Ok(inner) => Ok(Blob { inner }), - Err(e) => Err(E::custom(e)), +mod serde_deserialize { + struct HumanReadableBlobVisitor; + impl<'de> Visitor<'de> for HumanReadableBlobVisitor { + type Value = Blob; + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("expected base64 encoded string") + } + + fn visit_str(self, v: &str) -> Result + where + E: serde::de::Error, + { + match base64::decode(v) { + Ok(inner) => Ok(Blob { inner }), + Err(e) => Err(E::custom(e)), + } } } -} - -#[cfg(all(aws_sdk_unstable, feature = "serde-deserialize"))] -struct NotHumanReadableBlobVisitor; - -#[cfg(all(aws_sdk_unstable, feature = "serde-deserialize"))] -impl<'de> Visitor<'de> for NotHumanReadableBlobVisitor { - type Value = Blob; - fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - formatter.write_str("expected base64 encoded string") - } - - fn visit_byte_buf(self, v: Vec) -> Result - where - E: serde::de::Error, - { - Ok(Blob { inner: v }) + + struct NotHumanReadableBlobVisitor; + impl<'de> Visitor<'de> for NotHumanReadableBlobVisitor { + type Value = Blob; + fn expecting(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + formatter.write_str("expected base64 encoded string") + } + + fn visit_byte_buf(self, v: Vec) -> Result + where + E: serde::de::Error, + { + Ok(Blob { inner: v }) + } } -} - -#[cfg(all(aws_sdk_unstable, feature = "serde-deserialize"))] -impl<'de> Deserialize<'de> for Blob { - fn deserialize(deserializer: D) -> Result - where - D: serde::Deserializer<'de>, - { - if deserializer.is_human_readable() { - deserializer.deserialize_str(HumanReadableBlobVisitor) - } else { - deserializer.deserialize_byte_buf(NotHumanReadableBlobVisitor) + + impl<'de> Deserialize<'de> for Blob { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + if deserializer.is_human_readable() { + deserializer.deserialize_str(HumanReadableBlobVisitor) + } else { + deserializer.deserialize_byte_buf(NotHumanReadableBlobVisitor) + } } } } + #[cfg(test)] #[cfg(all( aws_sdk_unstable,