Skip to content

victorporof/rust-enum-str-derive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rust-enum-str-derive

License: MPL 2.0 Build Status

A procedural macro derive allowing for automatically implementing AsRef<str> for enums.

Purpose

Automate the tedious process of stringifying enum variants where needed.

How to use

Procedural macros are not fully standardized as of September 2017, but sufficient features are available in the current rust nightly version (1.22). See the RFC and the tracking issue for more information.

Therefore, to create procedural macros and use this crate, you need Nightly:

rustup default nightly

Add this to your Cargo.toml file:

[dependencies]
enum-str-derive = { git = "https://github.com/victorporof/rust-enum-str-derive.git" }

Then, simply import the library into your code and derive the EnumStr trait on your data structures.

Available derives:

  • EnumStr
  • EnumStrCamelCase
  • EnumStrKebabCase
  • EnumStrMixedCase
  • EnumStrShoutySnakeCase
  • EnumStrSnakeCase
  • EnumStrTitleCase
#![feature(proc_macro)]
extern crate enum_str_derive;

use enum_str_derive::{EnumStrSnakeCase};

#[derive(EnumStrCamelCase)]
enum Data {
    Foo,
    BarBaz
}

assert_eq!(Data::Foo.as_ref(), "foo");
assert_eq!(Data::BarBaz.as_ref(), "bar-baz");

About

Self stringifying enum variants

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages