put names all in one place. some stub code for funcs!
This commit is contained in:
23
crates/generate/src/funcs.rs
Normal file
23
crates/generate/src/funcs.rs
Normal 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(¶m.name);
|
||||
let type_ = names.type_ref(¶m.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!() })
|
||||
}
|
||||
Reference in New Issue
Block a user