use super::WType;
use super::WValue;
use it_lilo::lifter::LiError;
use it_lilo::lowerer::LoError;
use it_lilo::traits::RecordResolvableError;
use thiserror::Error as ThisError;
#[derive(Debug, ThisError)]
pub enum HostImportError {
#[error(
"Expected {0} type, but found {1:?} value during interface values lifting from Wasm memory"
)]
MismatchWValues(WType, WValue),
#[error("Not enough WValue arguments are provided from the Wasm side")]
MismatchWValuesCount,
#[error("{0}")]
LifterError(#[from] LiError),
#[error("{0}")]
LowererError(#[from] LoError),
#[error("{0}")]
RecordNotFound(#[from] RecordResolvableError),
#[error("{0}")]
InvalidUTF8String(#[from] std::string::FromUtf8Error),
}