[][src]Struct intrusive_collections::UnsafeRef

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.

Implementations

impl<T: ?Sized> UnsafeRef<T>[src]

pub unsafe fn from_raw(val: *const T) -> UnsafeRef<T>[src]

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]

Converts an UnsafeRef into a raw pointer

impl<T: ?Sized> UnsafeRef<T>[src]

pub fn from_box(val: Box<T>) -> UnsafeRef<T>[src]

Creates an UnsafeRef from a Box

pub unsafe fn into_box(ptr: Self) -> Box<T>[src]

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> AsRef<T> for UnsafeRef<T>[src]

impl<T: ?Sized> Borrow<T> for UnsafeRef<T>[src]

impl<T: ?Sized> Clone for UnsafeRef<T>[src]

impl<T: Debug + ?Sized> Debug for UnsafeRef<T>[src]

impl<T: ?Sized> Deref for UnsafeRef<T>[src]

type Target = T

The resulting type after dereferencing.

impl<T: ?Sized + Send> Send for UnsafeRef<T>[src]

impl<T: ?Sized + Sync> Sync for UnsafeRef<T>[src]

Auto Trait Implementations

impl<T: ?Sized> Unpin for UnsafeRef<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.