Trait enum_map::Enum

source ·
pub trait Enum: Sized {
    const LENGTH: usize;

    // Required methods
    fn from_usize(value: usize) -> Self;
    fn into_usize(self) -> usize;
}
Expand description

Enum mapping type.

This trait is implemented by #[derive(Enum)].

This trait is also implemented by bool and u8. While u8 is strictly speaking not an actual enum, there are good reasons to consider it like one, as array of u8 keys is a relatively common pattern.

Required Associated Constants§

source

const LENGTH: usize

Length of the enum.

Required Methods§

source

fn from_usize(value: usize) -> Self

Takes an usize, and returns an element matching into_usize function.

source

fn into_usize(self) -> usize

Returns an unique identifier for a value within range of 0..Array::LENGTH.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Enum for Ordering

source§

const LENGTH: usize = 3usize

source§

fn from_usize(value: usize) -> Self

source§

fn into_usize(self) -> usize

source§

impl Enum for Infallible

source§

const LENGTH: usize = 0usize

source§

fn from_usize(_: usize) -> Self

source§

fn into_usize(self) -> usize

source§

impl Enum for bool

source§

const LENGTH: usize = 2usize

source§

fn from_usize(value: usize) -> Self

source§

fn into_usize(self) -> usize

source§

impl Enum for u8

source§

const LENGTH: usize = 256usize

source§

fn from_usize(value: usize) -> Self

source§

fn into_usize(self) -> usize

source§

impl Enum for ()

source§

const LENGTH: usize = 1usize

source§

fn from_usize(value: usize) -> Self

source§

fn into_usize(self) -> usize

Implementors§