use super::*;
pub fn gen_callback(def: &TypeDef, gen: &Gen) -> TokenStream {
let name = gen_type_name(def, gen);
let signature = def.invoke_method().signature(&[]);
let params = signature.params.iter().map(|p| {
let name = gen_param_name(&p.param);
let tokens = gen_win32_abi_param(p, gen);
quote! { #name: #tokens }
});
let return_sig = gen_win32_return_sig(&signature, gen);
let features = method_features(&signature, gen);
quote! {
#features
pub type #name = unsafe extern "system" fn(#(#params),*) #return_sig;
}
}