You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
670 B
29 lines
670 B
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
|
|
}
|