From aa293ed7e10f6df1538f8058b842cc63ff1fb42b Mon Sep 17 00:00:00 2001 From: Rerumu Date: Wed, 27 Apr 2022 13:22:05 -0400 Subject: [PATCH] Unify tool error handling --- wasm-synth/src/main.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/wasm-synth/src/main.rs b/wasm-synth/src/main.rs index 4bb76f3..04402d6 100644 --- a/wasm-synth/src/main.rs +++ b/wasm-synth/src/main.rs @@ -3,7 +3,7 @@ use std::io::{Result, Write}; use parity_wasm::{deserialize_file, elements::Module}; use wasm_ast::builder::TypeInfo; -type Translator = fn(&Module, &TypeInfo, &mut dyn Write) -> Result<()>; +type Translate = fn(&Module, &TypeInfo, &mut dyn Write) -> Result<()>; fn parse_module(name: &str) -> Module { let wasm = deserialize_file(name).expect("Failed to parse Wasm file"); @@ -11,23 +11,24 @@ fn parse_module(name: &str) -> Module { wasm.parse_names().unwrap_or_else(|v| v.1) } -fn run_translator(wasm: &Module, runtime: &str, translator: Translator) { +fn run_translator(wasm: &Module, runtime: &str, translate: Translate) -> Result<()> { let pipe = std::io::stdout(); let lock = &mut pipe.lock(); let type_info = TypeInfo::from_module(wasm); - write!(lock, "local rt = (function() {runtime} end)() ").unwrap(); - translator(wasm, &type_info, lock).unwrap(); + write!(lock, "local rt = (function() {runtime} end)() ")?; + translate(wasm, &type_info, lock) } fn do_translate(name: &str, file: &str) { let wasm = &parse_module(file); - - match name.to_lowercase().as_str() { + let result = match name.to_lowercase().as_str() { "luajit" => run_translator(wasm, codegen_luajit::RUNTIME, codegen_luajit::translate), "luau" => run_translator(wasm, codegen_luau::RUNTIME, codegen_luau::translate), _ => panic!("Bad language: {name}"), - } + }; + + result.expect("Failed to translate file"); } fn do_help() {