Enum StackMapError

Source
pub enum StackMapError {
    MapFull,
}
Expand description

§StackMap

A fixed-capacity hash map implementation that stores all data on the stack rather than the heap. This provides performance benefits for small maps by eliminating heap allocations and improving cache locality.

§Performance Characteristics

  • Optimized for small collections (recommended N ≤ 32)
  • Zero heap allocations - everything stays on the stack
  • Better cache locality than standard HashMap for small data sets
  • O(N) worst-case complexity for operations (acceptable for small N)
  • Uses linear probing with deleted flags rather than complex tombstone logic

§Usage Warning

Since all data is stored on the stack, using large capacity values (N > 32) may cause stack overflow in resource-constrained environments. Choose the capacity parameter carefully based on your expected maximum collection size.

§Example

use stackmap::StackMap;

// Create a new map with capacity for 8 entries
let mut map = StackMap::<String, i32, 8>::new();

// Insert some values
map.insert_or_update("one".to_string(), 1).unwrap();
map.insert_or_update("two".to_string(), 2).unwrap();

// Check if a value exists
assert_eq!(map.get(&"one".to_string()), Some(&1));

// Count entries
assert_eq!(map.len(), 2);

Custom error type for StackMap operations

Variants§

§

MapFull

The map is at full capacity and cannot accept more entries. Consider increasing the capacity template parameter or removing unneeded entries.

Trait Implementations§

Source§

impl Clone for StackMapError

Source§

fn clone(&self) -> StackMapError

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StackMapError

Source§

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

Formats the value using the given formatter. Read more
Source§

impl PartialEq for StackMapError

Source§

fn eq(&self, other: &StackMapError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for StackMapError

Source§

impl StructuralPartialEq for StackMapError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.