frui_macros/
lib.rs

1use proc_macro::TokenStream;
2
3mod macros;
4
5#[proc_macro]
6pub fn impl_widget_list(tokens: TokenStream) -> TokenStream {
7    macros::impl_tuple_slice::impl_tuple_slice(tokens)
8}
9
10//
11// Widget Implementations
12//
13
14#[proc_macro_derive(LeafWidget)]
15pub fn leaf_widget(tokens: TokenStream) -> TokenStream {
16    macros::widget::Leaf(&syn::parse_macro_input!(tokens as syn::ItemStruct)).into()
17}
18
19#[proc_macro_derive(SingleChildWidget)]
20pub fn single_child_widget(tokens: TokenStream) -> TokenStream {
21    macros::widget::SingleChild(&syn::parse_macro_input!(tokens as syn::ItemStruct)).into()
22}
23
24#[proc_macro_derive(MultiChildWidget)]
25pub fn multi_child_widget(tokens: TokenStream) -> TokenStream {
26    macros::widget::MultiChild(&syn::parse_macro_input!(tokens as syn::ItemStruct)).into()
27}
28
29#[proc_macro_derive(ViewWidget)]
30pub fn view_widget(tokens: TokenStream) -> TokenStream {
31    macros::widget::View(&syn::parse_macro_input!(tokens as syn::ItemStruct)).into()
32}
33
34#[proc_macro_derive(InheritedWidget)]
35pub fn inherited_widget(tokens: TokenStream) -> TokenStream {
36    macros::widget::Inherited(&syn::parse_macro_input!(tokens as syn::ItemStruct)).into()
37}