1#![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_macro_lib::cgp_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_provider(attr: TokenStream, item: TokenStream) -> TokenStream {
20 cgp_macro_lib::cgp_provider(attr.into(), item.into())
21 .unwrap_or_else(syn::Error::into_compile_error)
22 .into()
23}
24
25#[proc_macro_attribute]
26pub fn cgp_new_provider(attr: TokenStream, item: TokenStream) -> TokenStream {
27 cgp_macro_lib::cgp_new_provider(attr.into(), item.into())
28 .unwrap_or_else(syn::Error::into_compile_error)
29 .into()
30}
31
32#[proc_macro_attribute]
33pub fn cgp_getter(attr: TokenStream, item: TokenStream) -> TokenStream {
34 cgp_macro_lib::cgp_getter(attr.into(), item.into())
35 .unwrap_or_else(syn::Error::into_compile_error)
36 .into()
37}
38
39#[proc_macro_attribute]
40pub fn cgp_auto_getter(attr: TokenStream, item: TokenStream) -> TokenStream {
41 cgp_macro_lib::cgp_auto_getter(attr.into(), item.into())
42 .unwrap_or_else(syn::Error::into_compile_error)
43 .into()
44}
45
46#[proc_macro]
47pub fn delegate_components(body: TokenStream) -> TokenStream {
48 cgp_macro_lib::delegate_components(body.into())
49 .unwrap_or_else(syn::Error::into_compile_error)
50 .into()
51}
52
53#[proc_macro]
54pub fn check_components(body: TokenStream) -> TokenStream {
55 cgp_macro_lib::check_components(body.into())
56 .unwrap_or_else(syn::Error::into_compile_error)
57 .into()
58}
59
60#[proc_macro]
61pub fn delegate_and_check_components(body: TokenStream) -> TokenStream {
62 cgp_macro_lib::delegate_and_check_components(body.into())
63 .unwrap_or_else(syn::Error::into_compile_error)
64 .into()
65}
66
67#[proc_macro]
68pub fn cgp_preset(body: TokenStream) -> TokenStream {
69 cgp_macro_lib::define_preset(body.into())
70 .unwrap_or_else(syn::Error::into_compile_error)
71 .into()
72}
73
74#[proc_macro_attribute]
75pub fn cgp_type(attrs: TokenStream, body: TokenStream) -> TokenStream {
76 cgp_macro_lib::cgp_type(attrs.into(), body.into())
77 .unwrap_or_else(syn::Error::into_compile_error)
78 .into()
79}
80
81#[proc_macro_attribute]
82pub fn cgp_context(attr: TokenStream, item: TokenStream) -> TokenStream {
83 cgp_macro_lib::cgp_context(attr.into(), item.into())
84 .unwrap_or_else(syn::Error::into_compile_error)
85 .into()
86}
87
88#[proc_macro_attribute]
89pub fn blanket_trait(attr: TokenStream, item: TokenStream) -> TokenStream {
90 cgp_macro_lib::blanket_trait(attr.into(), item.into())
91 .unwrap_or_else(syn::Error::into_compile_error)
92 .into()
93}
94
95#[proc_macro_attribute]
96pub fn re_export_imports(attrs: TokenStream, body: TokenStream) -> TokenStream {
97 cgp_macro_lib::re_export_imports(attrs.into(), body.into())
98 .unwrap_or_else(syn::Error::into_compile_error)
99 .into()
100}
101
102#[proc_macro]
103pub fn replace_with(body: TokenStream) -> TokenStream {
104 cgp_macro_lib::replace_with(body.into())
105 .unwrap_or_else(syn::Error::into_compile_error)
106 .into()
107}
108
109#[proc_macro]
110pub fn symbol(body: TokenStream) -> TokenStream {
111 cgp_macro_lib::make_symbol(body.into()).into()
112}
113
114#[proc_macro]
115#[allow(non_snake_case)]
116pub fn Product(body: TokenStream) -> TokenStream {
117 cgp_macro_lib::make_product_type(body.into()).into()
118}
119
120#[proc_macro]
121#[allow(non_snake_case)]
122pub fn Sum(body: TokenStream) -> TokenStream {
123 cgp_macro_lib::make_sum_type(body.into()).into()
124}
125
126#[proc_macro]
127pub fn product(body: TokenStream) -> TokenStream {
128 cgp_macro_lib::make_product_expr(body.into()).into()
129}
130
131#[proc_macro_derive(HasField)]
132pub fn derive_fields(item: TokenStream) -> TokenStream {
133 cgp_macro_lib::derive_fields(item.into()).into()
134}
135
136#[proc_macro_derive(HasFields)]
137pub fn derive_has_fields(item: TokenStream) -> TokenStream {
138 cgp_macro_lib::derive_has_fields(item.into())
139 .unwrap_or_else(syn::Error::into_compile_error)
140 .into()
141}