Skip to main content

smol_bytes/bytes_mut/
ops.rs

1use super::*;
2
3impl core::ops::Deref for BytesMut {
4  type Target = [u8];
5
6  #[cfg_attr(not(coverage), inline(always))]
7  fn deref(&self) -> &Self::Target {
8    match &self.0 {
9      Repr::Inline(b) => b.as_slice(),
10      Repr::Heap(b) => b.as_ref(),
11    }
12  }
13}
14
15impl core::ops::DerefMut for BytesMut {
16  #[cfg_attr(not(coverage), inline(always))]
17  fn deref_mut(&mut self) -> &mut Self::Target {
18    match &mut self.0 {
19      Repr::Inline(b) => b.as_mut_slice(),
20      Repr::Heap(b) => b.as_mut(),
21    }
22  }
23}
24
25impl core::borrow::Borrow<[u8]> for BytesMut {
26  #[cfg_attr(not(coverage), inline(always))]
27  fn borrow(&self) -> &[u8] {
28    self.as_ref()
29  }
30}
31
32impl core::borrow::BorrowMut<[u8]> for BytesMut {
33  #[cfg_attr(not(coverage), inline(always))]
34  fn borrow_mut(&mut self) -> &mut [u8] {
35    self.as_mut()
36  }
37}
38
39impl AsRef<[u8]> for BytesMut {
40  #[cfg_attr(not(coverage), inline(always))]
41  fn as_ref(&self) -> &[u8] {
42    self
43  }
44}
45
46impl AsMut<[u8]> for BytesMut {
47  #[cfg_attr(not(coverage), inline(always))]
48  fn as_mut(&mut self) -> &mut [u8] {
49    self
50  }
51}