#[unsafe(no_mangle)]pub const extern "C" fn nstd_core_slice_first(
slice: &NSTDSlice,
) -> NSTDAnyAvailable on crate feature
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>();
const ALIGN: usize = core::mem::align_of::<u64>();
unsafe {
let numbers: [u64; 3] = [707, 23043, 8008];
let numbers_ptr = numbers.as_ptr().cast();
let slice = nstd_core_slice_new(numbers_ptr, STRIDE, ALIGN, numbers.len()).unwrap();
let empty = nstd_core_slice_new(numbers_ptr, STRIDE, ALIGN, 0).unwrap();
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());
}