Skip to main content

smol_bytes/utf8_buffer/
ops.rs

1use core::{
2  borrow::BorrowMut,
3  ops::{DerefMut, Index, IndexMut},
4};
5
6use super::*;
7
8impl<I> Index<I> for Utf8Buffer
9where
10  I: core::slice::SliceIndex<str>,
11{
12  type Output = I::Output;
13
14  #[cfg_attr(not(coverage), inline(always))]
15  fn index(&self, index: I) -> &Self::Output {
16    &self.as_str()[index]
17  }
18}
19
20impl AsMut<str> for Utf8Buffer {
21  fn as_mut(&mut self) -> &mut str {
22    self.as_mut_str()
23  }
24}
25
26impl BorrowMut<str> for Utf8Buffer {
27  fn borrow_mut(&mut self) -> &mut str {
28    self.as_mut_str()
29  }
30}
31
32impl DerefMut for Utf8Buffer {
33  fn deref_mut(&mut self) -> &mut Self::Target {
34    self.as_mut_str()
35  }
36}
37
38impl<I> IndexMut<I> for Utf8Buffer
39where
40  I: core::slice::SliceIndex<str>,
41{
42  fn index_mut(&mut self, index: I) -> &mut Self::Output {
43    &mut self.as_mut_str()[index]
44  }
45}