Struct std::ptr::UniqueUnstable [-]  [+] [src]

pub struct Unique<T>(pub *mut T);

A wrapper around a raw *mut T that indicates that the possessor of this wrapper owns the referent. This in turn implies that the Unique<T> is Send/Sync if T is Send/Sync, unlike a raw *mut T (which conveys no particular ownership semantics). Useful for building abstractions like Vec<T> or Box<T>, which internally use raw pointers to manage the memory that they own.

Methods

impl<T> Unique<T>

fn null() -> Unique<T>

Returns a null Unique.

unsafe fn offset(self, offset: int) -> *mut T

Return an (unsafe) pointer into the memory owned by self.

Trait Implementations

impl<T> Send for Unique<T>

Unique pointers are Send if T is Send because the data they reference is unaliased. Note that this aliasing invariant is unenforced by the type system; the abstraction using the Unique must enforce it.

impl<T> Sync for Unique<T>

Unique pointers are Sync if T is Sync because the data they reference is unaliased. Note that this aliasing invariant is unenforced by the type system; the abstraction using the Unique must enforce it.