| Crates.io | variants-data-struct |
| lib.rs | variants-data-struct |
| version | 0.3.0 |
| created_at | 2025-10-19 07:41:43.785704+00 |
| updated_at | 2025-10-23 19:50:05.388797+00 |
| description | A derive macro to convert enums into a struct where the variants are members and types are that that of variants data. |
| homepage | |
| repository | https://github.com/JohnScience/variants-data-struct |
| max_upload_size | |
| id | 1890165 |
| size | 45,573 |
This crate provides VariantsDataStruct derive macro that generates a struct for an enum, where each field corresponds to a variant of the enum. Each field's type is a struct representing the data of that variant or () if the variant has no data.
use variants_data_struct::VariantsDataStruct;
#[derive(VariantsDataStruct)]
pub enum MyEnum {
UnitEnum,
TupleEnum(i32, String),
StructEnum { id: u32, name: String },
}
// Equivalent to:
//
// pub struct MyEnumVariantsData {
// pub unit_enum: (),
// pub tuple_enum: TupleEnumVariantType,
// pub struct_enum: StructEnumVariantType,
// }
// pub struct TupleEnumVariantType(pub i32, pub String);
//
// pub struct StructEnumVariantType {
// pub id: u32,
// pub name: String,
// }