1#![no_std]
2
3extern crate proc_macro;
4
5use proc_macro::TokenStream;
6
7#[proc_macro_derive(HasField)]
8pub fn derive_fields(item: TokenStream) -> TokenStream {
9 cgp_field_macro_lib::derive_fields(item.into()).into()
10}
11
12#[proc_macro]
13pub fn symbol(body: TokenStream) -> TokenStream {
14 cgp_field_macro_lib::make_symbol(body.into()).into()
15}
16
17#[proc_macro]
18#[allow(non_snake_case)]
19pub fn Product(body: TokenStream) -> TokenStream {
20 cgp_field_macro_lib::make_product_type(body.into()).into()
21}
22
23#[proc_macro]
24#[allow(non_snake_case)]
25pub fn Sum(body: TokenStream) -> TokenStream {
26 cgp_field_macro_lib::make_sum_type(body.into()).into()
27}
28
29#[proc_macro]
30pub fn product(body: TokenStream) -> TokenStream {
31 cgp_field_macro_lib::make_product_expr(body.into()).into()
32}