Merge remote-tracking branch 'alexcrichton/more-object-safe'

This commit is contained in:
Carl Lerche
2017-03-01 10:44:22 -08:00
+30 -2
View File
@@ -44,7 +44,7 @@ pub use self::writer::Writer;
*
*/
impl<'a, T: Buf> Buf for &'a mut T {
impl<'a, T: Buf + ?Sized> Buf for &'a mut T {
fn remaining(&self) -> usize {
(**self).remaining()
}
@@ -58,7 +58,35 @@ impl<'a, T: Buf> Buf for &'a mut T {
}
}
impl<'a, T: BufMut> BufMut for &'a mut T {
impl<'a, T: BufMut + ?Sized> BufMut for &'a mut T {
fn remaining_mut(&self) -> usize {
(**self).remaining_mut()
}
unsafe fn bytes_mut(&mut self) -> &mut [u8] {
(**self).bytes_mut()
}
unsafe fn advance_mut(&mut self, cnt: usize) {
(**self).advance_mut(cnt)
}
}
impl<T: Buf + ?Sized> Buf for Box<T> {
fn remaining(&self) -> usize {
(**self).remaining()
}
fn bytes(&self) -> &[u8] {
(**self).bytes()
}
fn advance(&mut self, cnt: usize) {
(**self).advance(cnt)
}
}
impl<T: BufMut + ?Sized> BufMut for Box<T> {
fn remaining_mut(&self) -> usize {
(**self).remaining_mut()
}