#[no_mangle]
pub extern "C" fn nstd_shared_ptr_share(
    shared_ptr: &NSTDSharedPtr
) -> NSTDSharedPtr
Available 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);
}