Skip to main content

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}