Crate const_array_map

Crate const_array_map 

Source
Expand description

A no_std-compatible, const-capable Map type backed by an array.

This crate defines a new map type, ConstArrayMap, similar to other data structures but implemented using a single array with zero-cost conversion between keys and array indices.

Currently, keys are limited to enums with a primitive representation. In the future, it might also be possible to support arbitrary types with a relatively small number of distinct valid values, possibly at the expense of not exposing const-qualified methods for these key types.

§Example

use const_array_map::{const_array_map, PrimitiveEnum};

#[repr(u8)]
#[derive(Copy, Clone, PrimitiveEnum)]
enum Letter {
    A,
    B,
    C,
}

let letters = const_array_map! {
    Letter::A => 'a',
    Letter::B => 'b',
    Letter::C => 'c',
};

assert_eq!(letters[Letter::A], 'a');
assert_eq!(letters[Letter::C], 'c');

Macros§

const_array_map
Provides an easy way to construct a new ConstArrayMap from a number of key-value pairs that can also be used in const contexts.

Structs§

ConstArrayMap
An associative array (Map) backed by a Rust’s built-in array.
PrimitiveEnumLayout
Describes the layout of an enum with a #[repr(primitive_type)] attribute.

Traits§

ConstDefault
Implements a compilation time default value for the implemented type.
PrimitiveEnum
Indicates that Self is a primitive enum type, meaning that it is an enum with a #[repr(primitive_type)] attribute.

Derive Macros§

PrimitiveEnum