use libc::{ c_void, }; /// Copy slice of bytes only /// /// # Notes /// `dst` and `src` must not overlap. See [move_slice]. pub fn copy_slice(dst: &mut [u8], src: &[u8]) -> usize { let sz = std::cmp::min(dst.len(),src.len()); unsafe { libc::memcpy(&mut dst[0] as *mut u8 as *mut c_void, &src[0] as *const u8 as *const c_void, sz); } sz } /// Move slice of bytes only /// /// # Notes /// `dst` and `src` can overlap. pub fn move_slice(dst: &mut [u8], src: &[u8]) -> usize { let sz = std::cmp::min(dst.len(),src.len()); unsafe { libc::memmove(&mut dst[0] as *mut u8 as *mut c_void, &src[0] as *const u8 as *const c_void, sz); } sz }