diff options
Diffstat (limited to 'compiler/rustc_serialize/src/serialize.rs')
| -rw-r--r-- | compiler/rustc_serialize/src/serialize.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/compiler/rustc_serialize/src/serialize.rs b/compiler/rustc_serialize/src/serialize.rs index 7d6b8c760ff..36e575b2427 100644 --- a/compiler/rustc_serialize/src/serialize.rs +++ b/compiler/rustc_serialize/src/serialize.rs @@ -268,6 +268,15 @@ direct_serialize_impls! { char emit_char read_char } +impl<S: Encoder, T: ?Sized> Encodable<S> for &T +where + T: Encodable<S>, +{ + fn encode(&self, s: &mut S) -> Result<(), S::Error> { + (**self).encode(s) + } +} + impl<S: Encoder> Encodable<S> for ! { fn encode(&self, _s: &mut S) -> Result<(), S::Error> { unreachable!() @@ -298,12 +307,6 @@ impl<S: Encoder> Encodable<S> for str { } } -impl<S: Encoder> Encodable<S> for &str { - fn encode(&self, s: &mut S) -> Result<(), S::Error> { - s.emit_str(self) - } -} - impl<S: Encoder> Encodable<S> for String { fn encode(&self, s: &mut S) -> Result<(), S::Error> { s.emit_str(&self[..]) |
