cmod_macros/
lib.rs

1extern crate proc_macro;
2
3mod backend;
4use proc_macro::TokenStream;
5
6// A proc macro used to implement modules.
7#[proc_macro_attribute]
8pub fn cmod(attr: TokenStream, input: TokenStream) -> TokenStream {
9    backend::cmod(attr, input)
10}
11
12#[proc_macro_attribute]
13pub fn function(attr: TokenStream, input: TokenStream) -> TokenStream {
14    backend::cmod_function(attr, input)
15}
16
17#[proc_macro_attribute]
18pub fn class(attr: TokenStream, input: TokenStream) -> TokenStream {
19    backend::cmod_class(attr, input)
20}
21
22#[proc_macro_attribute]
23pub fn methods(attr: TokenStream, input: TokenStream) -> TokenStream {
24    backend::cmod_methods(attr, input)
25}
26
27#[proc_macro_attribute]
28pub fn module(attr: TokenStream, input: TokenStream) -> TokenStream {
29    backend::cmod_module(attr, input)
30}
31
32#[proc_macro_attribute]
33pub fn tags(_attr: TokenStream, input: TokenStream) -> TokenStream {
34    input
35}