agui_macros/
lib.rs

1extern crate proc_macro;
2
3use functional_widget::parse_functional_widget;
4use proc_macro::TokenStream;
5use widget_derive::parse_widget_derive;
6
7mod builder;
8mod functional_widget;
9mod widget_derive;
10
11#[proc_macro_attribute]
12pub fn functional_widget(args: TokenStream, input: TokenStream) -> TokenStream {
13    parse_functional_widget(args.into(), input.into()).into()
14}
15
16#[proc_macro_derive(Widget, attributes(widget))]
17pub fn widget_derive(input: TokenStream) -> TokenStream {
18    parse_widget_derive(input)
19}
20
21#[proc_macro]
22pub fn build(input: TokenStream) -> TokenStream {
23    builder::build_impl(input.into()).into()
24}