use crate::{CastBuilderError, CevioAIConfigBuilderError};
use thiserror::Error;
#[derive(Debug, Error)]
pub enum CevioAIError {
#[error("Windows API error: {0}")]
Windows(#[from] windows::core::Error),
#[error("BuilderError error: {0}")]
BuilderError(#[from] CastBuilderError),
#[error("ConfigBuilderError error: {0}")]
ConfigBuilderError(#[from] CevioAIConfigBuilderError),
#[error("Installation state is unknown")]
InstallUnknown,
#[error("Executable not found")]
ExecutableNotFound,
#[error("Failed to start process")]
ProcessStartFailed,
#[error("Application terminated due to error after startup")]
AppTerminated,
#[error("Invalid parameter: {0}")]
InvalidParameter(String),
}
pub type Result<T> = std::result::Result<T, CevioAIError>;