Struct intrusive_collections::UnsafeRef [−][src]
pub struct UnsafeRef<T: ?Sized> { /* fields omitted */ }
Unchecked shared pointer
This type acts like a Rc
or Arc
except that no reference count is
maintained. Instead, the user is responsible for freeing the managed object
once it is no longer in use.
You must guarantee that an object managed by an UnsafeRef
is not
moved, dropped or accessed through a mutable reference as long as at least
one UnsafeRef
is pointing to it.
Methods
impl<T: ?Sized> UnsafeRef<T>
[src]
impl<T: ?Sized> UnsafeRef<T>
pub unsafe fn from_raw(val: *const T) -> UnsafeRef<T>
[src]
pub unsafe fn from_raw(val: *const T) -> UnsafeRef<T>
Creates an UnsafeRef
from a raw pointer
Safety
You must ensure that the UnsafeRef
guarantees are upheld.
pub fn into_raw(ptr: Self) -> *mut T
[src]
pub fn into_raw(ptr: Self) -> *mut T
Converts an UnsafeRef
into a raw pointer
impl<T: ?Sized> UnsafeRef<T>
[src]
impl<T: ?Sized> UnsafeRef<T>
pub fn from_box(val: Box<T>) -> UnsafeRef<T>
[src]
pub fn from_box(val: Box<T>) -> UnsafeRef<T>
Creates an UnsafeRef
from a Box
pub unsafe fn into_box(ptr: Self) -> Box<T>
[src]
pub unsafe fn into_box(ptr: Self) -> Box<T>
Converts an UnsafeRef
into a Box
Safety
You must ensure that this is the only UnsafeRef
managing this
object and that it is not currently a member of any intrusive
collections. This operation is only valid if the UnsafeRef
was
created using UnsafeRef::from_box
.
Trait Implementations
impl<T: ?Sized> IntrusivePointer<T> for UnsafeRef<T>
[src]
impl<T: ?Sized> IntrusivePointer<T> for UnsafeRef<T>
fn into_raw(self) -> *const T
[src]
fn into_raw(self) -> *const T
Consumes the owned pointer and returns a raw pointer to the owned object. Read more
unsafe fn from_raw(ptr: *const T) -> Self
[src]
unsafe fn from_raw(ptr: *const T) -> Self
Constructs an owned pointer from a raw pointer which was previously returned by into_raw
. Read more
impl<T: ?Sized> Clone for UnsafeRef<T>
[src]
impl<T: ?Sized> Clone for UnsafeRef<T>
fn clone(&self) -> UnsafeRef<T>
[src]
fn clone(&self) -> UnsafeRef<T>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
impl<T: ?Sized> Deref for UnsafeRef<T>
[src]
impl<T: ?Sized> Deref for UnsafeRef<T>
type Target = T
The resulting type after dereferencing.
fn deref(&self) -> &T
[src]
fn deref(&self) -> &T
Dereferences the value.
impl<T: ?Sized> AsRef<T> for UnsafeRef<T>
[src]
impl<T: ?Sized> AsRef<T> for UnsafeRef<T>
impl<T: ?Sized> Borrow<T> for UnsafeRef<T>
[src]
impl<T: ?Sized> Borrow<T> for UnsafeRef<T>
impl<T: Debug + ?Sized> Debug for UnsafeRef<T>
[src]
impl<T: Debug + ?Sized> Debug for UnsafeRef<T>
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl<T: ?Sized + Send> Send for UnsafeRef<T>
[src]
impl<T: ?Sized + Send> Send for UnsafeRef<T>
impl<T: ?Sized + Sync> Sync for UnsafeRef<T>
[src]
impl<T: ?Sized + Sync> Sync for UnsafeRef<T>