put names all in one place. some stub code for funcs!

This commit is contained in:
Pat Hickey
2020-01-19 19:33:41 -08:00
parent cd686915aa
commit 9291495e57
5 changed files with 126 additions and 45 deletions

View File

@@ -0,0 +1,23 @@
use proc_macro2::TokenStream;
use quote::quote;
use crate::names::Names;
pub fn define_func(names: &Names, func: &witx::InterfaceFunc) -> TokenStream {
let ident = names.func(&func.name);
let mut args = TokenStream::new();
for param in func.params.iter() {
let name = names.func_param(&param.name);
let type_ = names.type_ref(&param.tref);
args.extend(quote!(#name: #type_,));
}
let mut rets = TokenStream::new();
for result in func.results.iter() {
let type_ = names.type_ref(&result.tref);
rets.extend(quote!(#type_,));
}
quote!(pub fn #ident(#args) -> (#rets) { unimplemented!() })
}