diff --git a/src/base64.rs b/src/base64.rs index dc2ba8a..86abea1 100644 --- a/src/base64.rs +++ b/src/base64.rs @@ -191,6 +191,12 @@ impl ToBase64 for [u8] { } } +impl<'a, T: ?Sized + ToBase64> ToBase64 for &'a T { + fn to_base64(&self, config: Config) -> String { + (**self).to_base64(config) + } +} + /// A trait for converting from base64 encoded values. pub trait FromBase64 { /// Converts the value of `self`, interpreted as base64 encoded data, into @@ -317,6 +323,12 @@ impl FromBase64 for [u8] { } } +impl<'a, T: ?Sized + FromBase64> FromBase64 for &'a T { + fn from_base64(&self) -> Result, FromBase64Error> { + (**self).from_base64() + } +} + /// Base64 decoding lookup table, generated using: /// ```rust /// let mut ch = 0u8; diff --git a/src/hex.rs b/src/hex.rs index 08d25fd..22d2e5d 100644 --- a/src/hex.rs +++ b/src/hex.rs @@ -53,6 +53,12 @@ impl ToHex for [u8] { } } +impl<'a, T: ?Sized + ToHex> ToHex for &'a T { + fn to_hex(&self) -> String { + (**self).to_hex() + } +} + /// A trait for converting hexadecimal encoded values pub trait FromHex { /// Converts the value of `self`, interpreted as hexadecimal encoded data, @@ -155,6 +161,12 @@ impl FromHex for str { } } +impl<'a, T: ?Sized + FromHex> FromHex for &'a T { + fn from_hex(&self) -> Result, FromHexError> { + (**self).from_hex() + } +} + #[cfg(test)] mod tests { use hex::{FromHex, ToHex};