Skip to main content

rusteal_macros/
lib.rs

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