#[cfg(not(feature = "std"))]
use alloc::string::String;
use core::fmt;
pub type InspectResult<T> = Result<T, InspectError>;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum InspectError {
LimitExceeded(String),
InvalidPath(String),
UnsupportedOperation(String),
CycleDetected,
Custom(String),
}
impl fmt::Display for InspectError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
InspectError::LimitExceeded(msg) => write!(f, "Limit exceeded: {}", msg),
InspectError::InvalidPath(msg) => write!(f, "Invalid path: {}", msg),
InspectError::UnsupportedOperation(msg) => {
write!(f, "Unsupported operation: {}", msg)
}
InspectError::CycleDetected => write!(f, "Cycle detected"),
InspectError::Custom(msg) => write!(f, "{}", msg),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for InspectError {}