blob: 44db6db7d28e2a717e5fa57311006ca5948ca13e [file] [log] [blame]
use crate::bindings;
use std::cmp::min;
use std::mem::size_of;
pub fn cswap_loop<T>(a: &mut [T], b: &mut [T]) {
unsafe {
bindings::swap_loop(
a.as_mut_ptr() as *mut i8,
b.as_mut_ptr() as *mut i8,
(size_of::<T>() * min(a.len(), b.len())) as bindings::size_t,
)
}
}
pub fn cswap_malloc<T>(a: &mut [T], b: &mut [T]) {
unsafe {
bindings::swap_malloc(
a.as_mut_ptr() as *mut i8,
b.as_mut_ptr() as *mut i8,
(size_of::<T>() * min(a.len(), b.len())) as bindings::size_t,
)
}
}
pub fn cswap_alloca<T>(a: &mut [T], b: &mut [T]) {
unsafe {
bindings::swap_alloca(
a.as_mut_ptr() as *mut i8,
b.as_mut_ptr() as *mut i8,
(size_of::<T>() * min(a.len(), b.len())) as bindings::size_t,
)
}
}