use crate::buf::IoBuf;
pub unsafe trait IoBufMut: IoBuf {
fn stable_mut_ptr(&mut self) -> *mut u8;
unsafe fn set_init(&mut self, pos: usize);
}
unsafe impl IoBufMut for Vec<u8> {
fn stable_mut_ptr(&mut self) -> *mut u8 {
self.as_mut_ptr()
}
unsafe fn set_init(&mut self, init_len: usize) {
if self.len() < init_len {
unsafe {
self.set_len(init_len);
}
}
}
}
#[cfg(feature = "bytes")]
unsafe impl IoBufMut for bytes::BytesMut {
fn stable_mut_ptr(&mut self) -> *mut u8 {
self.as_mut_ptr()
}
unsafe fn set_init(&mut self, init_len: usize) {
if self.len() < init_len {
unsafe {
self.set_len(init_len);
}
}
}
}