const Name = @import("./vec.zig").Name; /// This opaque type represents an error generated by Wasmtime. Errors /// primarily have an error message associated with them at this time, which /// you can acquire by calling `format`. /// /// Errors are safe to share across threads and must be deleted with `deinit`. pub const Error = opaque { /// Creates a new error with the provided message. pub fn init(message: [:0]const u8) *Error { return wasmtime_error_new(message.ptr); } pub fn deinit(self: *Error) void { wasmtime_error_delete(self); } pub fn getMessage(self: *const Error) Name { var result: Name = undefined; wasmtime_error_message(self, &result); return result; } /// Attempts to extract a WASI-specific exit status from this error. /// Returns status if error is a WASI "exit" trap, or `null` otherwise. pub fn getExitStatus(self: *Error) ?c_int { var result: c_int = undefined; const has_status = wasmtime_error_exit_status(self, &result); return if (has_status) result else null; } extern "c" fn wasmtime_error_new([*:0]const u8) *Error; extern "c" fn wasmtime_error_delete(*Error) void; extern "c" fn wasmtime_error_message(*const Error, *Name) void; extern "c" fn wasmtime_error_exit_status(*const Error, *c_int) bool; // extern "c" fn wasmtime_error_wasm_trace(*const Error, *FrameVec) void; };