wasm_bindgen_macro/
lib.rs1#![doc(html_root_url = "https://docs.rs/wasm-bindgen-macro/0.2")]
2
3extern crate proc_macro;
4
5use proc_macro::TokenStream;
6use quote::quote;
7
8#[proc_macro_attribute]
9pub fn wasm_bindgen(attr: TokenStream, input: TokenStream) -> TokenStream {
10 match wasm_bindgen_macro_support::expand(attr.into(), input.into()) {
11 Ok(tokens) => {
12 if cfg!(feature = "xxx_debug_only_print_generated_code") {
13 println!("{}", tokens);
14 }
15 tokens.into()
16 }
17 Err(diagnostic) => (quote! { #diagnostic }).into(),
18 }
19}
20
21#[proc_macro]
35pub fn link_to(input: TokenStream) -> TokenStream {
36 match wasm_bindgen_macro_support::expand_link_to(input.into()) {
37 Ok(tokens) => {
38 if cfg!(feature = "xxx_debug_only_print_generated_code") {
39 println!("{}", tokens);
40 }
41 tokens.into()
42 }
43 Err(diagnostic) => (quote! { String::clone(#diagnostic) }).into(),
47 }
48}
49
50#[proc_macro_attribute]
51pub fn __wasm_bindgen_class_marker(attr: TokenStream, input: TokenStream) -> TokenStream {
52 match wasm_bindgen_macro_support::expand_class_marker(attr.into(), input.into()) {
53 Ok(tokens) => {
54 if cfg!(feature = "xxx_debug_only_print_generated_code") {
55 println!("{}", tokens);
56 }
57 tokens.into()
58 }
59 Err(diagnostic) => (quote! { #diagnostic }).into(),
60 }
61}