use hdi::prelude::Timestamp;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum RhaiError {
#[error("Script execution error: {0}")]
Execution(#[from] Box<rhai::EvalAltResult>),
#[error("Timeout error: script execution exceeded {0:?}")]
Timeout(Timestamp),
#[error("Recursion depth exceeded: {0} levels")]
RecursionDepthExceeded(u32),
#[error("Operation limit exceeded: {0} operations")]
OperationLimitExceeded(u64),
#[error("Input too large")]
InputTooLarge,
#[error("Syntax error: {0}")]
SyntaxError(String),
#[error("Script error: {0}")]
ScriptError(String),
#[error("Module import not allowed")]
ModuleImportError,
}