Skip to main content

hurray_buffer_list_get

Function hurray_buffer_list_get 

Source
#[unsafe(no_mangle)]
pub unsafe extern "C" fn hurray_buffer_list_get( list: *const HurrayBufferList, index: u64, out_buffer: *mut *mut HurrayBuffer, ) -> HurrayStatus
Expand description

Borrows the HurrayBuffer at index.

The returned handle is borrowed: ownership stays with the list, and the caller MUST NOT call hurray_buffer_destroy on it. It stays valid until the list is destroyed.

Returns HURRAY_ERR_INDEX_OUT_OF_BOUNDS if index is not less than the list length.

§Safety

  • list MUST be a live handle from hurray_buffer_list_new.
  • out_buffer MUST be a valid, non-null, writable pointer.

§Examples

use hurray_ffi::buffer_list::{
    hurray_buffer_list_destroy, hurray_buffer_list_get, hurray_buffer_list_new,
};
use hurray_ffi::status::HURRAY_ERR_INDEX_OUT_OF_BOUNDS;
use hurray_ffi::{HurrayBuffer, HurrayBufferList};

let mut list: *mut HurrayBufferList = std::ptr::null_mut();
unsafe { hurray_buffer_list_new(0, &mut list) };

// An empty list has no index 0.
let mut got: *mut HurrayBuffer = std::ptr::null_mut();
assert_eq!(
    unsafe { hurray_buffer_list_get(list, 0, &mut got) },
    HURRAY_ERR_INDEX_OUT_OF_BOUNDS
);

unsafe { hurray_buffer_list_destroy(&mut list) };