1#![recursion_limit = "256"]
2#![allow(unused_imports)]
3#![allow(unused_variables)]
4
5extern crate proc_macro;
6extern crate syn;
7#[macro_use]
8extern crate quote;
9
10mod browser;
11mod button;
12mod display;
13mod group;
14mod image;
15mod input;
16mod menu;
17mod table;
18mod utils;
19mod valuator;
20mod widget;
21mod window;
22
23use crate::browser::*;
24use crate::button::*;
25use crate::display::*;
26use crate::group::*;
27use crate::image::*;
28use crate::input::*;
29use crate::menu::*;
30use crate::table::*;
31use crate::valuator::*;
32use crate::widget::*;
33use crate::window::*;
34use proc_macro::TokenStream;
35
36#[proc_macro_derive(WidgetBase)]
37pub fn base_widget_trait_macro(input: TokenStream) -> TokenStream {
38 let ast = syn::parse(input).unwrap();
39 impl_widget_base_trait(&ast)
40}
41
42#[proc_macro_derive(WidgetExt)]
43pub fn widget_trait_macro(input: TokenStream) -> TokenStream {
44 let ast = syn::parse(input).unwrap();
45 impl_widget_trait(&ast)
46}
47
48#[proc_macro_derive(WidgetType)]
49pub fn widget_type_macro(input: TokenStream) -> TokenStream {
50 let ast = syn::parse(input).unwrap();
51 impl_widget_type(&ast)
52}
53
54#[proc_macro_derive(ButtonExt)]
55pub fn button_trait_macro(input: TokenStream) -> TokenStream {
56 let ast = syn::parse(input).unwrap();
57 impl_button_trait(&ast)
58}
59
60#[proc_macro_derive(GroupExt)]
61pub fn group_trait_macro(input: TokenStream) -> TokenStream {
62 let ast = syn::parse(input).unwrap();
63 impl_group_trait(&ast)
64}
65
66#[proc_macro_derive(WindowExt)]
67pub fn window_trait_macro(input: TokenStream) -> TokenStream {
68 let ast = syn::parse(input).unwrap();
69 impl_window_trait(&ast)
70}
71
72#[proc_macro_derive(InputExt)]
73pub fn input_trait_macro(input: TokenStream) -> TokenStream {
74 let ast = syn::parse(input).unwrap();
75 impl_input_trait(&ast)
76}
77
78#[proc_macro_derive(MenuExt)]
79pub fn menu_trait_macro(input: TokenStream) -> TokenStream {
80 let ast = syn::parse(input).unwrap();
81 impl_menu_trait(&ast)
82}
83
84#[proc_macro_derive(ValuatorExt)]
85pub fn valuator_trait_macro(input: TokenStream) -> TokenStream {
86 let ast = syn::parse(input).unwrap();
87 impl_valuator_trait(&ast)
88}
89
90#[proc_macro_derive(DisplayExt)]
91pub fn display_trait_macro(input: TokenStream) -> TokenStream {
92 let ast = syn::parse(input).unwrap();
93 impl_display_trait(&ast)
94}
95
96#[proc_macro_derive(BrowserExt)]
97pub fn browser_trait_macro(input: TokenStream) -> TokenStream {
98 let ast = syn::parse(input).unwrap();
99 impl_browser_trait(&ast)
100}
101
102#[proc_macro_derive(TableExt)]
103pub fn table_trait_macro(input: TokenStream) -> TokenStream {
104 let ast = syn::parse(input).unwrap();
105 impl_table_trait(&ast)
106}
107
108#[proc_macro_derive(ImageExt)]
109pub fn image_trait_macro(input: TokenStream) -> TokenStream {
110 let ast = syn::parse(input).unwrap();
111 impl_image_trait(&ast)
112}