Skip to main content

rusteal_macros/
lib.rs

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}