despatma-dependency-container 0.3.6

Design Pattern Macro for dependency container
Documentation
#![doc = include_str!("../README.md")]

use proc_macro::TokenStream;
use proc_macro_error2::proc_macro_error;
use quote::quote;
use syn::{parse_macro_input, ItemImpl};

mod input;
mod output;
mod processing;

#[proc_macro_error]
#[proc_macro_attribute]
pub fn dependency_container(_tokens: TokenStream, impl_expr: TokenStream) -> TokenStream {
    let input = parse_macro_input!(impl_expr as ItemImpl);
    let input = input::Container::from_item_impl(input);
    let mut processing: processing::Container = input.into();
    processing.process();
    let output: output::Container = processing.into();

    quote! {
        #output
    }
    .into()
}