Skip to content

Latest commit

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

enum-utils

crates.iodocs.rsBuild Status

A set of procedural macros for deriving useful functionality on enums.

See the API docs for more information.

An efficient, configurable FromStr implementation for C-like enums.

#[derive(Debug,PartialEq, enum_utils::FromStr)]enumTest{Alpha,Beta,}assert_eq!("Alpha".parse(),Ok(Test::Alpha));assert_eq!("Beta".parse(),Ok(Test::Beta));

A static method returning an iterator over the variants of an enum.

#[derive(Debug,PartialEq,Eq, enum_utils::IterVariants)]#[repr(u8)]pubenumDirection{North = 1,East,South,West,}useDirection::*;assert_eq!(Direction::iter().collect::<Vec<_>>(), vec![North,East,South,West]);

Conversion to and from the discriminant of a C-like enum.

use std::convert::TryInto;#[derive(Debug,Clone,Copy,PartialEq,Eq, enum_utils::ReprFrom, enum_utils::TryFromRepr)]#[repr(u8)]pubenumDirection{North = 1,East,South,West}useDirection::*;assert_eq!(1u8,North.into());assert_eq!(4u8,West.into());assert_eq!(North,1u8.try_into().unwrap());assert_eq!(West,4u8.try_into().unwrap());

About

A set of useful proc macros for enums

Resources

Stars

14 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages