smol_bytes/utf8_buffer/
ops.rs1use 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}