ps_buffer/methods/
slice_mut.rs1use ps_range::PartialRange;
2
3use crate::Buffer;
4
5impl Buffer {
6 pub fn slice_mut(&mut self, range: impl PartialRange) -> &mut [u8] {
8 let length = self.len();
9 let range = range.clamp_right(length);
10
11 &mut self[range]
12 }
13}
14
15#[cfg(test)]
16mod tests {
17 use crate::{Buffer, BufferError};
18
19 #[test]
20 fn try_mutate() -> Result<(), BufferError> {
21 let mut buffer = Buffer::alloc(1000)?;
22
23 let slice = buffer.slice_mut(200..);
24
25 slice[13..26].copy_from_slice(b"Hello, world!");
26
27 assert_eq!(&buffer[213..226], b"Hello, world!");
28
29 Ok(())
30 }
31}