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

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

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]

fn clone(&self) -> HandleMap<T>[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

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

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

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

fn default() -> Self[src]

Returns the “default value” for a type. Read more

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

type Output = T

The returned type after indexing.

fn index(&self, h: Handle) -> &T[src]

Performs the indexing (container[index]) operation. Read more

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]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.