INNER CODE UNIT · Rust
to_array
elringus/sprite-dicing · crates/abi/src/lib.rs:220
fn to_array<T>(vec: Vec<T>) -> (*const T, usize) {
match vec.len() {
0 => (ptr::null(), 0),
len => (Box::into_raw(vec.into_boxed_slice()) as *const T, len),
}
}
unsafe fn free_array<T>(ptr: *const T, len: usize) {
if !ptr.is_null() {
drop(Box::from_raw(ptr::slice_from_raw_parts_mut(
ptr as *mut T,
len,
)));
}
}
unsafe fn to_str<'a>(ptr: *const c_char) -> Option<&'a str> {
match ptr.is_null() {