zng_app_proc_macros/
lib.rs1#![doc(html_favicon_url = "https://raw.githubusercontent.com/zng-ui/zng/main/examples/image/res/zng-logo-icon.png")]
2#![doc(html_logo_url = "https://raw.githubusercontent.com/zng-ui/zng/main/examples/image/res/zng-logo.png")]
3#![doc = include_str!(concat!("../", std::env!("CARGO_PKG_README")))]
9#![warn(unused_extern_crates)]
10#![warn(missing_docs)]
11
12#[macro_use]
13extern crate quote;
14
15#[macro_use]
16extern crate lazy_static;
17
18use proc_macro::TokenStream;
19
20#[macro_use]
21mod util;
22
23mod property;
24mod wgt_property_attrs;
25mod widget;
26mod widget_util;
27
28#[proc_macro_attribute]
34pub fn property(args: TokenStream, input: TokenStream) -> TokenStream {
35 property::expand(args, input)
36}
37
38#[doc(hidden)]
39#[proc_macro]
40pub fn property_meta(input: TokenStream) -> TokenStream {
41 property::expand_meta(input)
42}
43
44#[doc(hidden)]
45#[proc_macro]
46pub fn property_impl(input: TokenStream) -> TokenStream {
47 property::expand_impl(input)
48}
49
50#[proc_macro_attribute]
56pub fn widget(args: TokenStream, input: TokenStream) -> TokenStream {
57 widget::expand(args, input, false)
58}
59
60#[proc_macro_attribute]
66pub fn widget_mixin(args: TokenStream, input: TokenStream) -> TokenStream {
67 widget::expand(args, input, true)
68}
69
70#[proc_macro_attribute]
76pub fn easing(args: TokenStream, input: TokenStream) -> TokenStream {
77 wgt_property_attrs::expand_easing(args, input)
78}
79
80#[doc(hidden)]
81#[proc_macro]
82pub fn widget_new(input: TokenStream) -> TokenStream {
83 widget::expand_new(input)
84}
85
86#[doc(hidden)]
87#[proc_macro]
88pub fn trace(input: TokenStream) -> TokenStream {
89 eprintln!("{input}");
90 input
91}