generate a module trait and call it
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
extern crate proc_macro;
|
||||
|
||||
mod funcs;
|
||||
mod module_trait;
|
||||
mod names;
|
||||
mod parse;
|
||||
mod types;
|
||||
@@ -10,6 +11,7 @@ use proc_macro2::TokenStream as TokenStream2;
|
||||
use quote::quote;
|
||||
|
||||
use funcs::define_func;
|
||||
use module_trait::define_module_trait;
|
||||
use names::Names;
|
||||
use types::define_datatype;
|
||||
|
||||
@@ -27,12 +29,14 @@ pub fn from_witx(args: TokenStream) -> TokenStream {
|
||||
let modules = doc.modules().map(|module| {
|
||||
let modname = names.module(&module.name);
|
||||
let fs = module.funcs().map(|f| define_func(&names, &f));
|
||||
let modtrait = define_module_trait(&names, &module);
|
||||
quote!(
|
||||
mod #modname {
|
||||
use super::*;
|
||||
use super::WasiCtx;
|
||||
use super::types::*;
|
||||
use memory::*;
|
||||
#(#fs)*
|
||||
|
||||
#modtrait
|
||||
}
|
||||
)
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user