1 use crate::{bad_utf8, handle_result, wasm_byte_vec_t, wasmtime_error_t}; 2 3 #[unsafe(no_mangle)] 4 pub unsafe extern "C" fn wasmtime_wat2wasm( 5 wat: *const u8, 6 wat_len: usize, 7 ret: &mut wasm_byte_vec_t, 8 ) -> Option<Box<wasmtime_error_t>> { 9 let wat = crate::slice_from_raw_parts(wat, wat_len); 10 let wat = match std::str::from_utf8(wat) { 11 Ok(s) => s, 12 Err(_) => return bad_utf8(), 13 }; 14 handle_result(wat::parse_str(wat).map_err(|e| e.into()), |bytes| { 15 ret.set_buffer(bytes) 16 }) 17 } 18