variants-data-struct

Crates.iovariants-data-struct
lib.rsvariants-data-struct
version0.3.0
created_at2025-10-19 07:41:43.785704+00
updated_at2025-10-23 19:50:05.388797+00
descriptionA derive macro to convert enums into a struct where the variants are members and types are that that of variants data.
homepage
repositoryhttps://github.com/JohnScience/variants-data-struct
max_upload_size
id1890165
size45,573
Dmitrii - Demenev (JohnScience)

documentation

https://docs.rs/variants-data-struct

README

Derive data struct for enum

Crates.io Downloads Documentation License Dependency Status

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.

Example

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,
// }

Similar crates

Commit count: 0

cargo fmt