1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#![recursion_limit = "2048"]
use pmutil::ToTokensExt;
use proc_macro::TokenStream;
use swc_macros_common::print;
mod common;
mod fast;
mod parallel;
#[proc_macro_attribute]
pub fn fast_path(attr: TokenStream, item: TokenStream) -> TokenStream {
let item = syn::parse(item).expect("failed to parse input as an item");
let expanded = fast::expand(attr.into(), item);
print("fast_path", expanded.dump())
}
#[proc_macro_attribute]
pub fn parallel(attr: TokenStream, item: TokenStream) -> TokenStream {
let item = syn::parse(item).expect("failed to parse input as an item");
let expanded = parallel::expand(attr.into(), item);
print("parallel", expanded.dump())
}