#struct-name #macro-derive #enums #enum-variant

derive-name

Derive macro to get the name of a struct, enum or enum variant

5 releases (2 stable)

1.1.0 Jul 28, 2023
1.0.0 Jul 27, 2023
0.1.2 Mar 27, 2023
0.1.1 Mar 27, 2023
0.1.0 Mar 27, 2023

#1978 in Rust patterns

Download history 345/week @ 2025-09-28 265/week @ 2025-10-05 681/week @ 2025-10-12 324/week @ 2025-10-19 417/week @ 2025-10-26 537/week @ 2025-11-02 473/week @ 2025-11-09 453/week @ 2025-11-16 268/week @ 2025-11-23 403/week @ 2025-11-30 215/week @ 2025-12-07 234/week @ 2025-12-14 175/week @ 2025-12-21 154/week @ 2025-12-28 229/week @ 2026-01-04 272/week @ 2026-01-11

863 downloads per month
Used in 19 crates (4 directly)

ISC license

6KB
67 lines

Derive Name

CI Crate Docs

Derive macro to get the name of a struct, enum or enum variant.

Name

use derive_name::Name;

#[derive(Name)]
struct Alice;

#[derive(Name)]
enum Bob {}

assert_eq!(Alice::name(), "Alice");
assert_eq!(Bob::name(), "Bob");

Named

use derive_name::Named;

#[derive(derive_name::Name)]
struct Alice;

#[derive(derive_name::Name)]
enum Bob {
    Variant
}

let her = Alice {};
let his = Bob::Variant;

assert_eq!(her.name(), "Alice");
assert_eq!(his.name(), "Bob");

VariantName

use derive_name::VariantName;

#[derive(VariantName)]
enum Alice {
    Variant
}

assert_eq!(Alice::Variant.name(), "Variant");

Contributing

If you think you found a bug: open a issue. Feature request are also welcome.

License

This library is distributed under the terms of the ISC License.
Find an easy explanation on choosealicense.com/licenses/isc.

Dependencies

~135–520KB
~12K SLoC