variants-data-struct 0.2.0

A derive macro to convert enums into a struct where the variants are members and types are that that of variants data.
Documentation

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