nstd_core_slice_last

Function nstd_core_slice_last 

Source
#[unsafe(no_mangle)]
pub const extern "C" fn nstd_core_slice_last( slice: &NSTDSlice, ) -> NSTDAny
Available on crate feature core only.
Expand description

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

§Parameters:

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

§Returns

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

§Example

use nstd_sys::core::slice::{nstd_core_slice_last, 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] = [717, 421, 4317];
    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_last(&slice).cast::<u64>() == 4317);
    assert!(nstd_core_slice_last(&empty).is_null());
}