Function nstd_sys::shared_ptr::nstd_shared_ptr_share
source · #[no_mangle]
pub extern "C" fn nstd_shared_ptr_share(
shared_ptr: &NSTDSharedPtr
) -> NSTDSharedPtrAvailable on crate feature
nstd_shared_ptr only.Expand description
Shares shared_ptr.
Parameters:
const NSTDSharedPtr *shared_ptr- The shared object to share.
Returns
NSTDSharedPtr shared - A new pointer pointing to the shared data.
Example
use core::ptr::addr_of;
use nstd_sys::shared_ptr::{nstd_shared_ptr_get, nstd_shared_ptr_new, nstd_shared_ptr_share};
const SIZE: usize = core::mem::size_of::<u64>();
unsafe {
let v = 39u64;
let share;
{
let shared_ptr = nstd_shared_ptr_new(SIZE, addr_of!(v).cast());
share = nstd_shared_ptr_share(&shared_ptr);
}
assert!(*nstd_shared_ptr_get(&share).cast::<u64>() == v);
}