[][src]Function watt::proc_macro

pub fn proc_macro(fun: &str, input: TokenStream, wasm: &[u8]) -> TokenStream

A #[proc_macro] implemented in wasm!

Canonical macro implementation:

use proc_macro2::TokenStream;

#[no_mangle]
pub extern "C" fn my_macro(input: TokenStream) -> TokenStream {
    proc_macro2::set_wasm_panic_hook();

    ...
}

Canonical entry point:

extern crate proc_macro;

use proc_macro::TokenStream;

static WASM: &[u8] = include_bytes!("my_macro.wasm");

#[proc_macro]
pub fn my_macro(input: TokenStream) -> TokenStream {
    watt::proc_macro("my_macro", input, WASM)
}