| Crates.io | erased-discriminant |
| lib.rs | erased-discriminant |
| version | 1.0.1 |
| created_at | 2024-10-27 21:15:45.275064+00 |
| updated_at | 2025-03-03 23:28:24.48388+00 |
| description | Type-erased version of core::mem::Discriminant |
| homepage | |
| repository | https://github.com/dtolnay/erased-discriminant |
| max_upload_size | |
| id | 1425012 |
| size | 24,350 |
DiscriminantThis crate provides a Discriminant type that behaves like
core::mem::Discriminant<T> but without the generic type parameter T. With
this, we can build collections such as HashSet that contain discriminants from a
mixture of different enum types.
use erased_discriminant::Discriminant;
use std::collections::HashSet;
enum Enum {
A(i32),
B,
}
enum DifferentEnum {
A,
}
let mut set = HashSet::new();
set.insert(Discriminant::of(&Enum::A(99)));
set.insert(Discriminant::of(&Enum::B));
set.insert(Discriminant::of(&DifferentEnum::A));
assert_eq!(set.len(), 3);