cgp_component_macro/
lib.rs1#![no_std]
2
3extern crate proc_macro;
8
9use proc_macro::TokenStream;
10
11#[proc_macro_attribute]
12pub fn cgp_component(attr: TokenStream, item: TokenStream) -> TokenStream {
13 cgp_component_macro_lib::derive_component(attr.into(), item.into())
14 .unwrap_or_else(syn::Error::into_compile_error)
15 .into()
16}
17
18#[proc_macro_attribute]
19pub fn cgp_getter(attr: TokenStream, item: TokenStream) -> TokenStream {
20 cgp_component_macro_lib::derive_getter_component(attr.into(), item.into())
21 .unwrap_or_else(syn::Error::into_compile_error)
22 .into()
23}
24
25#[proc_macro_attribute]
26pub fn cgp_auto_getter(attr: TokenStream, item: TokenStream) -> TokenStream {
27 cgp_component_macro_lib::derive_auto_getter_component(attr.into(), item.into())
28 .unwrap_or_else(syn::Error::into_compile_error)
29 .into()
30}
31
32#[proc_macro]
33pub fn delegate_components(body: TokenStream) -> TokenStream {
34 cgp_component_macro_lib::delegate_components(body.into())
35 .unwrap_or_else(syn::Error::into_compile_error)
36 .into()
37}
38
39#[proc_macro]
40pub fn cgp_preset(body: TokenStream) -> TokenStream {
41 cgp_component_macro_lib::define_preset(body.into())
42 .unwrap_or_else(syn::Error::into_compile_error)
43 .into()
44}
45
46#[proc_macro]
47pub fn cgp_type(body: TokenStream) -> TokenStream {
48 cgp_component_macro_lib::derive_type_component(body.into())
49 .unwrap_or_else(syn::Error::into_compile_error)
50 .into()
51}
52
53#[proc_macro]
54pub fn for_each_replace(body: TokenStream) -> TokenStream {
55 cgp_component_macro_lib::handle_for_each_replace(body.into())
56 .unwrap_or_else(syn::Error::into_compile_error)
57 .into()
58}
59
60#[proc_macro]
61pub fn replace_with(body: TokenStream) -> TokenStream {
62 cgp_component_macro_lib::handle_replace(body.into())
63 .unwrap_or_else(syn::Error::into_compile_error)
64 .into()
65}