diff options
author | 2019-12-06 16:33:04 -0800 | |
---|---|---|
committer | 2019-12-10 13:35:26 -0800 | |
commit | a7fc5274ad84987d21c4ead69d4d3772fdcc87d3 (patch) | |
tree | 280441ebee180b06f2cca3f190fc574a05123466 /src/buf/buf_mut.rs | |
parent | 7e80f3b6466ecb962334e617a3e304196476ade0 (diff) | |
download | bytes-a7fc5274ad84987d21c4ead69d4d3772fdcc87d3.tar.gz bytes-a7fc5274ad84987d21c4ead69d4d3772fdcc87d3.tar.zst bytes-a7fc5274ad84987d21c4ead69d4d3772fdcc87d3.zip |
Make Deref impls of Buf and BufMut forward more methods
Diffstat (limited to 'src/buf/buf_mut.rs')
-rw-r--r-- | src/buf/buf_mut.rs | 75 |
1 files changed, 63 insertions, 12 deletions
diff --git a/src/buf/buf_mut.rs b/src/buf/buf_mut.rs index 842da27..f5ed2a7 100644 --- a/src/buf/buf_mut.rs +++ b/src/buf/buf_mut.rs @@ -871,7 +871,8 @@ pub trait BufMut { } } -impl<T: BufMut + ?Sized> BufMut for &mut T { +macro_rules! deref_forward_bufmut { + () => ( fn remaining_mut(&self) -> usize { (**self).remaining_mut() } @@ -888,25 +889,75 @@ impl<T: BufMut + ?Sized> BufMut for &mut T { unsafe fn advance_mut(&mut self, cnt: usize) { (**self).advance_mut(cnt) } -} -impl<T: BufMut + ?Sized> BufMut for Box<T> { - fn remaining_mut(&self) -> usize { - (**self).remaining_mut() + fn put_slice(&mut self, src: &[u8]) { + (**self).put_slice(src) } - fn bytes_mut(&mut self) -> &mut [MaybeUninit<u8>] { - (**self).bytes_mut() + fn put_u8(&mut self, n: u8) { + (**self).put_u8(n) } - #[cfg(feature = "std")] - fn bytes_vectored_mut<'b>(&'b mut self, dst: &mut [IoSliceMut<'b>]) -> usize { - (**self).bytes_vectored_mut(dst) + fn put_i8(&mut self, n: i8) { + (**self).put_i8(n) } - unsafe fn advance_mut(&mut self, cnt: usize) { - (**self).advance_mut(cnt) + fn put_u16(&mut self, n: u16) { + (**self).put_u16(n) + } + + fn put_u16_le(&mut self, n: u16) { + (**self).put_u16_le(n) + } + + fn put_i16(&mut self, n: i16) { + (**self).put_i16(n) + } + + fn put_i16_le(&mut self, n: i16) { + (**self).put_i16_le(n) + } + + fn put_u32(&mut self, n: u32) { + (**self).put_u32(n) } + + fn put_u32_le(&mut self, n: u32) { + (**self).put_u32_le(n) + } + + fn put_i32(&mut self, n: i32) { + (**self).put_i32(n) + } + + fn put_i32_le(&mut self, n: i32) { + (**self).put_i32_le(n) + } + + fn put_u64(&mut self, n: u64) { + (**self).put_u64(n) + } + + fn put_u64_le(&mut self, n: u64) { + (**self).put_u64_le(n) + } + + fn put_i64(&mut self, n: i64) { + (**self).put_i64(n) + } + + fn put_i64_le(&mut self, n: i64) { + (**self).put_i64_le(n) + } + ) +} + +impl<T: BufMut + ?Sized> BufMut for &mut T { + deref_forward_bufmut!(); +} + +impl<T: BufMut + ?Sized> BufMut for Box<T> { + deref_forward_bufmut!(); } impl BufMut for &mut [u8] { |