[][src]Function watt::proc_macro_derive

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

A #[proc_macro_derive] 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_derive(MyDerive)]
pub fn my_macro(input: TokenStream) -> TokenStream {
    watt::proc_macro_derive("my_macro", input, WASM)
}