1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
extern crate proc_macro; extern crate watt; use proc_macro::TokenStream; use watt::WasmMacro; static MACRO: WasmMacro = WasmMacro::new(WASM); static WASM: &[u8] = include_bytes!("serde_derive.wasm"); #[proc_macro_derive(Serialize, attributes(serde))] pub fn derive_serialize(input: TokenStream) -> TokenStream { MACRO.proc_macro_derive("derive_serialize", input) } #[proc_macro_derive(Deserialize, attributes(serde))] pub fn derive_deserialize(input: TokenStream) -> TokenStream { MACRO.proc_macro_derive("derive_deserialize", input) }