Skip to main content

tinywasm_cli/cmd/
inspect.rs

1use eyre::Result;
2
3use crate::cli::ModuleInputArgs;
4use crate::load::load_module;
5use crate::output::{format_export_type, format_import_type};
6use anstream::println;
7use owo_colors::OwoColorize;
8
9pub fn run(args: ModuleInputArgs) -> Result<()> {
10    let loaded = load_module(&args.module)?;
11    let module = loaded.module;
12
13    println!("{}", "Imports".bold());
14    let mut import_count = 0usize;
15    for import in module.imports() {
16        import_count += 1;
17        println!("  {}.{}: {}", import.module.blue(), import.name.cyan(), format_import_type(import.ty).yellow());
18    }
19    if import_count == 0 {
20        println!("  {}", "(none)".yellow());
21    }
22
23    println!();
24    println!("{}", "Exports".bold());
25    let mut export_count = 0usize;
26    for export in module.exports() {
27        export_count += 1;
28        println!("  {}: {}", export.name.green(), format_export_type(export.ty).yellow());
29    }
30    if export_count == 0 {
31        println!("  {}", "(none)".yellow());
32    }
33
34    Ok(())
35}