Struct ffi_support::handle_map::HandleMap[][src]

pub struct HandleMap<T> { /* fields omitted */ }

HandleMap is a collection type which can hold any type of value, and offers a stable handle which can be used to retrieve it on insertion. These handles offer methods for converting to and from 64 bit integers, meaning they’re very easy to pass over the FFI (they also implement IntoFfi for the same purpose).

See the module level docs for more information.

Note: In FFI code, most usage of HandleMap will be done through the ConcurrentHandleMap type, which is a thin wrapper around a RwLock<HandleMap<Mutex<T>>>.

Implementations

impl<T> HandleMap<T>[src]

pub fn new() -> Self[src]

Create a new HandleMap with the default capacity.

pub fn new_with_capacity(request: usize) -> Self[src]

Allocate a new HandleMap. Note that the actual capacity may be larger than the requested value.

Panics if request is greater than handle_map::MAX_CAPACITY

pub fn len(&self) -> usize[src]

Get the number of entries in the HandleMap.

pub fn is_empty(&self) -> bool[src]

Returns true if the HandleMap is empty.

pub fn capacity(&self) -> usize[src]

Returns the number of slots allocated in the handle map.

pub fn insert(&mut self, v: T) -> Handle[src]

Insert an item into the map, and return a handle to it.

pub fn delete(&mut self, h: Handle) -> Result<(), HandleError>[src]

Delete an item from the HandleMap.

pub fn remove(&mut self, h: Handle) -> Result<T, HandleError>[src]

Remove an item from the HandleMap, returning the old value.

pub fn get(&self, h: Handle) -> Result<&T, HandleError>[src]

Get a reference to the item referenced by the handle, or return a HandleError describing the problem.

pub fn get_mut(&mut self, h: Handle) -> Result<&mut T, HandleError>[src]

Get a mut reference to the item referenced by the handle, or return a HandleError describing the problem.

Trait Implementations

impl<T: Clone> Clone for HandleMap<T>[src]

impl<T: Debug> Debug for HandleMap<T>[src]

impl<T> Default for HandleMap<T>[src]

impl<T> Index<Handle> for HandleMap<T>[src]

type Output = T

The returned type after indexing.

Auto Trait Implementations

impl<T> RefUnwindSafe for HandleMap<T> where
    T: RefUnwindSafe

impl<T> Send for HandleMap<T> where
    T: Send

impl<T> Sync for HandleMap<T> where
    T: Sync

impl<T> Unpin for HandleMap<T> where
    T: Unpin

impl<T> UnwindSafe for HandleMap<T> where
    T: UnwindSafe

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.