* Shuffle around the wiggle crates This commit reorganizes the wiggle crates slightly by performing the following transforms: * The `crates/wiggle` crate, previously named `wiggle`, was moved to `crates/wiggle/crates/macro` and is renamed to `wiggle-macro`. * The `crates/wiggle/crates/runtime` crate, previously named `wiggle-runtime`, was moved to `crates/wiggle` and is renamed to `wiggle`. * The new `wiggle` crate depends on `wiggle-macro` and reexports the macro. The goal here is that consumers only deal with the `wiggle` crate itself. No more crates depend on `wiggle-runtime` and all dependencies are entirely on just the `wiggle` crate. * Remove the `crates/wiggle/crates` directory Move everything into `crates/wiggle` directly, like `wasi-common` * Add wiggle-macro to test-all script * Fixup a test
39 lines
1.1 KiB
Rust
39 lines
1.1 KiB
Rust
use crate::Region;
|
|
use thiserror::Error;
|
|
|
|
#[derive(Debug, Error, PartialEq, Eq)]
|
|
pub enum GuestError {
|
|
#[error("Invalid flag value {0}")]
|
|
InvalidFlagValue(&'static str),
|
|
#[error("Invalid enum value {0}")]
|
|
InvalidEnumValue(&'static str),
|
|
#[error("Pointer overflow")]
|
|
PtrOverflow,
|
|
#[error("Pointer out of bounds: {0:?}")]
|
|
PtrOutOfBounds(Region),
|
|
#[error("Pointer not aligned to {1}: {0:?}")]
|
|
PtrNotAligned(Region, u32),
|
|
#[error("Pointer already borrowed: {0:?}")]
|
|
PtrBorrowed(Region),
|
|
#[error("Slice length mismatch")]
|
|
SliceLengthsDiffer,
|
|
#[error("In func {funcname}:{location}:")]
|
|
InFunc {
|
|
funcname: &'static str,
|
|
location: &'static str,
|
|
#[source]
|
|
err: Box<GuestError>,
|
|
},
|
|
#[error("In data {typename}.{field}:")]
|
|
InDataField {
|
|
typename: String,
|
|
field: String,
|
|
#[source]
|
|
err: Box<GuestError>,
|
|
},
|
|
#[error("Invalid UTF-8 encountered: {0:?}")]
|
|
InvalidUtf8(#[from] ::std::str::Utf8Error),
|
|
#[error("Int conversion error: {0:?}")]
|
|
TryFromIntError(#[from] ::std::num::TryFromIntError),
|
|
}
|