tycode_core/ai/error.rs
1use anyhow::anyhow;
2use thiserror::Error;
3
4#[derive(Error, Debug)]
5pub enum AiError {
6 #[error("Retryable error: {0}")]
7 Retryable(anyhow::Error),
8
9 #[error("Terminal error: {0}")]
10 Terminal(anyhow::Error),
11
12 #[error("Input too long: {0}")]
13 InputTooLong(anyhow::Error),
14
15 #[error("Transient error: {0}")]
16 Transient(anyhow::Error),
17}
18
19impl From<serde_json::Error> for AiError {
20 fn from(source: serde_json::Error) -> Self {
21 Self::Terminal(anyhow!(source))
22 }
23}