This library exports a trait called TagName
that exposes a
tag_name
method which is used for retrieving a name (tag) of a currently hold
variant within an enum
value.
More importantly, together with TagName
trait comes a derive(TagName)
macro that can automatically implement the trait.
```rust use tagname::TagName;
enum MyTaggedUnion { [tag(case = "lower")] Yes, [tag(case = "upper")] No, Maybe(usize), }
fn returncorrecttagnames() { let v1 = MyTaggedUnion::Yes; let v2 = MyTaggedUnion::No; let v3 = MyTaggedUnion::Maybe(1); asserteq!(v1.tagname(), "yes"); asserteq!(v2.tagname(), "NO"); asserteq!(v3.tag_name(), "Maybe"); } ```