1mod prop_type;
2mod shape;
3mod uclass;
4mod uclass_impl;
5mod udelegate;
6mod uenum;
7mod uinterface;
8mod ustruct;
9
10#[proc_macro_attribute]
11pub fn uclass(
12 attr: proc_macro::TokenStream,
13 item: proc_macro::TokenStream,
14) -> proc_macro::TokenStream {
15 match uclass::expand_uclass(attr.into(), item.into()) {
16 Ok(tokens) => tokens.into(),
17 Err(err) => err.to_compile_error().into(),
18 }
19}
20
21#[proc_macro_attribute]
22pub fn uclass_impl(
23 attr: proc_macro::TokenStream,
24 item: proc_macro::TokenStream,
25) -> proc_macro::TokenStream {
26 match uclass_impl::expand_uclass_impl(attr.into(), item.into()) {
27 Ok(tokens) => tokens.into(),
28 Err(err) => err.to_compile_error().into(),
29 }
30}
31
32#[proc_macro_attribute]
33pub fn ustruct(
34 attr: proc_macro::TokenStream,
35 item: proc_macro::TokenStream,
36) -> proc_macro::TokenStream {
37 match ustruct::expand_ustruct(attr.into(), item.into()) {
38 Ok(tokens) => tokens.into(),
39 Err(err) => err.to_compile_error().into(),
40 }
41}
42
43#[proc_macro_attribute]
44pub fn uenum(
45 attr: proc_macro::TokenStream,
46 item: proc_macro::TokenStream,
47) -> proc_macro::TokenStream {
48 match uenum::expand_uenum(attr.into(), item.into()) {
49 Ok(tokens) => tokens.into(),
50 Err(err) => err.to_compile_error().into(),
51 }
52}
53
54#[proc_macro_attribute]
55pub fn uinterface(
56 attr: proc_macro::TokenStream,
57 item: proc_macro::TokenStream,
58) -> proc_macro::TokenStream {
59 match uinterface::expand_uinterface(attr.into(), item.into()) {
60 Ok(tokens) => tokens.into(),
61 Err(err) => err.to_compile_error().into(),
62 }
63}