1use proc_macro::TokenStream;
2
3use crate::inject::bean::generate_setup_fn_for_bean;
4use crate::inject::bean_derive::generate_setup_fn_for_bean_derive;
5use crate::inject::injectable::generate_setup_fn_for_injectable;
6
7mod inject;
8
9#[proc_macro_attribute]
11pub fn bean(attr: TokenStream, item: TokenStream) -> TokenStream {
12 generate_setup_fn_for_bean(attr, item)
13}
14
15#[proc_macro_derive(Bean, attributes(value, qualifier))]
17pub fn bean_derive(input: TokenStream) -> TokenStream {
18 generate_setup_fn_for_bean_derive(input)
19}
20
21#[proc_macro_attribute]
23pub fn injectable(attr: TokenStream, item: TokenStream) -> TokenStream {
24 generate_setup_fn_for_injectable(attr, item)
25}