vine_macros/
lib.rs

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/// TODO: add documentation
10#[proc_macro_attribute]
11pub fn bean(attr: TokenStream, item: TokenStream) -> TokenStream {
12    generate_setup_fn_for_bean(attr, item)
13}
14
15/// TODO: add documentation
16#[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/// TODO: add documentation
22#[proc_macro_attribute]
23pub fn injectable(attr: TokenStream, item: TokenStream) -> TokenStream {
24    generate_setup_fn_for_injectable(attr, item)
25}