Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/crates/wasi-common/src/error.rs
1692 views
1
//! wasi-common uses an [`Error`] type which represents either a preview 1 [`Errno`] enum, on
2
//! [`anyhow::Error`] for trapping execution.
3
//!
4
//! The user can construct an [`Error`] out of an [`Errno`] using the `From`/`Into` traits.
5
//! They may also use [`Error::trap`] to construct an error that traps execution. The contents
6
//! can be inspected with [`Error::downcast`] and [`Error::downcast_ref`]. Additional context
7
//! can be provided with the [`Error::context`] method. This context is only observable with the
8
//! `Display` and `Debug` impls of the error.
9
10
pub use crate::snapshots::preview_1::error::{Error, ErrorExt};
11
use std::fmt;
12
13
/// An error returned from the `proc_exit` host syscall.
14
///
15
/// Embedders can test if an error returned from wasm is this error, in which
16
/// case it may signal a non-fatal trap.
17
#[derive(Debug)]
18
pub struct I32Exit(pub i32);
19
20
impl fmt::Display for I32Exit {
21
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22
write!(f, "Exited with i32 exit status {}", self.0)
23
}
24
}
25
26
impl std::error::Error for I32Exit {}
27
28