Struct core::ptr::Shared
[−]
[src]
pub struct Shared<T: ?Sized> { /* fields omitted */ }🔬 This is a nightly-only experimental API. (shared #27730)
needs an RFC to flesh out design
A wrapper around a raw non-null *mut T that indicates that the possessor
of this wrapper has shared ownership of the referent. Useful for
building abstractions like Rc<T> or Arc<T>, which internally
use raw pointers to manage the memory that they own.
Methods
impl<T: ?Sized> Shared<T>[src]
unsafe fn new(ptr: *mut T) -> Self
Trait Implementations
impl<T: ?Sized> !Send for Shared<T>[src]
Shared pointers are not Send because the data they reference may be aliased.
impl<T: ?Sized> !Sync for Shared<T>[src]
Shared pointers are not Sync because the data they reference may be aliased.
impl<T: ?Sized> Clone for Shared<T>[src]
fn clone(&self) -> Self
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0
Performs copy-assignment from source. Read more
impl<T: ?Sized> Copy for Shared<T>[src]
impl<T: ?Sized, U: ?Sized> CoerceUnsized<Shared<U>> for Shared<T> where T: Unsize<U>[src]
impl<T: ?Sized> Deref for Shared<T>[src]
type Target = *mut T
The resulting type after dereferencing
fn deref(&self) -> &*mut T
The method called to dereference a value