use thiserror::Error;
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Error, Debug)]
pub enum Error {
#[error("Engine initialization failed: {0}")]
InitializationError(String),
#[error("Failed to load URL: {0}")]
LoadError(String),
#[error("Rendering failed: {0}")]
RenderError(String),
#[error("Script execution failed: {0}")]
ScriptError(String),
#[error("Operation timed out after {0}ms")]
Timeout(u64),
#[error("Invalid configuration: {0}")]
ConfigError(String),
#[error("Network error: {0}")]
NetworkError(String),
#[cfg(feature = "cdp")]
#[error("CDP error: {0}")]
CdpError(String),
#[error("{0}")]
Other(String),
}
#[cfg(feature = "cdp")]
impl From<anyhow::Error> for Error {
fn from(err: anyhow::Error) -> Self {
Error::CdpError(err.to_string())
}
}