#[no_mangle]
pub extern "C" fn nstd_core_slice_first(slice: &NSTDSlice) -> NSTDAny
Available on crate feature nstd_core only.
Expand description

Returns an immutable pointer to the first element in the slice.

Parameters:

  • const NSTDSlice *slice - The slice to get the first element of.

Returns

NSTDAny element - A pointer to the first element in slice or NSTD_NULL if the slice is empty.

Example

use nstd_sys::core::slice::{nstd_core_slice_first, nstd_core_slice_new};

const STRIDE: usize = core::mem::size_of::<u64>();

let numbers: [u64; 3] = [707, 23043, 8008];
let numbers_ptr = numbers.as_ptr().cast();
let slice = nstd_core_slice_new(numbers_ptr, STRIDE, numbers.len());
let empty = nstd_core_slice_new(numbers_ptr, STRIDE, 0);

unsafe {
    assert!(nstd_core_slice_first(&slice) == numbers_ptr);
    assert!(*nstd_core_slice_first(&slice).cast::<u64>() == 707);
    assert!(nstd_core_slice_first(&empty).is_null());
}