1#[derive(Debug, thiserror::Error)]
2pub enum Error {
3 #[error("message build fail")]
5 MessageBuild,
6 #[error("json encode/decode fail: {0}")]
8 Json(#[from] serde_json::Error),
9 #[error("build header value error: {0}")]
11 HeaderValue(#[from] http::header::InvalidHeaderValue),
12 #[error("parse url string: {0}")]
14 UrlParse(#[from] url::ParseError),
15 #[error("client build fail")]
16 ClientBuild,
17 #[error("client failed to build request")]
18 RequestBuild(#[from] reqwest::Error),
19 #[cfg(feature = "opencv")]
20 #[error("failed to process image with opencv: {0}")]
21 Opencv(#[from] opencv::Error),
22 #[error("chat completion builder without model")]
23 ChatCompletionRequestBuild,
24 #[error("failed to decode utf-8: {0}")]
25 Utf8(#[from] std::string::FromUtf8Error),
26 #[error("failed to send message to chat reciever")]
27 SendMessage,
28 #[error("io {0}")]
29 Io(#[from] std::io::Error),
30 #[error("no file name")]
31 NoFileName,
32 #[error("no file extension found")]
33 NoFileExtension,
34 #[error("failed to join async task")]
35 JoinError(#[from] tokio::task::JoinError),
36 #[error("failed to build tool call")]
37 ToolCallBuild,
38 #[error("failed to build tool call parameters")]
39 ToolCallParametersBuild,
40 #[error("failed to build tool call function")]
41 ToolCallFunctionBuild,
42 #[error("failed to build generation request")]
43 GenerationRequestBuild,
44 #[error("api server error code={0}")]
45 ApiError(u16),
46 #[error("failed to build file request")]
47 FileRequestBuild,
48 #[error("failed to find env var")]
49 Var(#[from] std::env::VarError),
50}
51
52pub type Result<T> = std::result::Result<T, Error>;