Skip to main content

rusteal_macros/
lib.rs

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