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() {

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…