data_bucket_derive 0.3.17

DataBucket is container for WorkTable
Documentation
mod enum_generator;
mod generator;
mod parser;

use proc_macro2::TokenStream;
use quote::quote;

use crate::size_measure::enum_generator::EnumGenerator;
use crate::size_measure::generator::Generator;
use crate::size_measure::parser::{ParsedItem, Parser};

pub fn expand(input: &TokenStream) -> syn::Result<TokenStream> {
    let impl_def = match Parser::parse(input)? {
        ParsedItem::Struct(struct_def) => Generator { struct_def }.gen_impl()?,
        ParsedItem::Enum(enum_def) => EnumGenerator { enum_def }.gen_impl()?,
    };

    Ok(quote! {
        #impl_def
    })
}