#[derive(EnumName)]
{
// Attributes available to this derive:
#[enum_name]
}
Expand description
Automatically implements [more_convert::EnumName] on enum
§Where to use:
- Only want the kind
§Note:
- prefix and suffix are applied after rename_all
§EnumAttribute:
- rename_all: apply rule to field name
- default is “none”
- The possible values are (“lowercase”, “UPPERCASE”, “PascalCase”, “camelCase”, “snake_case”, “SCREAMING_SNAKE_CASE”, “kebab-case”, “SCREAMING-KEBAB-CASE”)
- prefix: add prefix to field name
- suffix: add suffix to field name
§Variant Attribute:
- rename: rename field, (prefix, suffix and rename_all are not applied)
- nest: call EnumName on the first field of the variant
§Examples
§Normal
use more_convert::EnumName;
#[derive(EnumName)]
pub enum Error {
InvalidCode,
ServerError,
}
assert_eq!("InvalidCode", Error::InvalidCode.enum_name());
assert_eq!("ServerError", Error::ServerError.enum_name());§rename and rename_all
use more_convert::EnumName;
#[derive(EnumName)]
#[enum_name(rename_all = "snake_case")]
pub enum Error {
InvalidCode,
ServerError,
#[enum_name(rename = "NotFound")]
NotFoundError,
}
assert_eq!("invalid_code", Error::InvalidCode.enum_name());
assert_eq!("server_error", Error::ServerError.enum_name());
assert_eq!("NotFound", Error::NotFoundError.enum_name());§prefix and suffix
use more_convert::EnumName;
#[derive(EnumName)]
#[enum_name(prefix = "Error", suffix = "What")]
pub enum Error {
InvalidCode,
ServerError,
}
assert_eq!("ErrorInvalidCodeWhat", Error::InvalidCode.enum_name());
assert_eq!("ErrorServerErrorWhat", Error::ServerError.enum_name());§nest
use more_convert::EnumName;
#[derive(EnumName)]
#[enum_name(prefix = "Inner")]
pub enum Inner {
A,
B,
}
#[derive(EnumName)]
pub enum TestEnumName {
InvalidCode,
#[enum_name(nest)]
Inner(Inner),
}
assert_eq!("InvalidCode", TestEnumName::InvalidCode.enum_name());
assert_eq!("InnerA", Inner::A.enum_name());
assert_eq!("InnerB", Inner::B.enum_name());