1use thiserror::Error;
2
3#[derive(Error, Debug)]
5pub enum Error {
6 #[error("HTTP error: {0}")]
8 HttpError(#[from] reqwest::Error),
9
10 #[error("JSON error: {0}")]
12 JsonError(#[from] serde_json::Error),
13
14 #[error("Gemini API error: {status_code} - {message}")]
16 ApiError {
17 status_code: u16,
19 message: String,
21 },
22
23 #[error("Request building error: {0}")]
25 RequestError(String),
26
27 #[error("Missing API key")]
29 MissingApiKey,
30
31 #[error("Function call error: {0}")]
33 FunctionCallError(String),
34}