use thiserror::Error;
#[derive(Debug, Error, Clone)]
pub enum LeptosAiError {
#[error("Request failed: {0}")]
RequestFailed(String),
#[error("Invalid provider: {0}")]
InvalidProvider(String),
#[error("API error: {0}")]
ApiError(String),
#[error("Parse error: {0}")]
ParseError(String),
#[error("Stream error: {0}")]
StreamError(String),
#[error("Missing configuration: {0}")]
MissingConfig(String),
}
impl From<gloo_net::Error> for LeptosAiError {
fn from(e: gloo_net::Error) -> Self {
LeptosAiError::RequestFailed(e.to_string())
}
}
impl From<serde_json::Error> for LeptosAiError {
fn from(e: serde_json::Error) -> Self {
LeptosAiError::ParseError(e.to_string())
}
}
impl From<cortexai_llm_client::LlmClientError> for LeptosAiError {
fn from(e: cortexai_llm_client::LlmClientError) -> Self {
LeptosAiError::ApiError(e.to_string())
}
}
pub type Result<T> = std::result::Result<T, LeptosAiError>;