1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[error("HTTP 요청 실패: {0}")]
7 Request(#[from] reqwest::Error),
8
9 #[error("WebSocket 연결 실패: {0}")]
10 ConnectionFailed(String),
11
12 #[error("WebSocket 통신 오류: {0}")]
13 WebSocket(#[from] tokio_tungstenite::tungstenite::Error),
14
15 #[error("JSON 파싱 실패: {0}")]
16 ResponseJson(reqwest::Error),
17
18 #[error("JSON 파싱 실패: {0}")]
19 SerdeJson(serde_json::Error),
20
21 #[error("내부 채널 통신 오류: {0}")]
22 InternalChannel(String),
23
24 #[error("방송이 꺼져있습니다.")]
25 StreamOffline,
26
27 #[error("잘못된 URL 형식: {0}")]
28 URLParse(#[from] url::ParseError),
29
30 #[error("아직 구현되지 않은 기능입니다.")]
31 NotImplemented,
32
33 #[error("이미 시작된 연결입니다.")]
34 AlreadyStarted,
35
36 #[error("API 오류: {0}")]
37 ApiError(String),
38}
39
40pub type Result<T> = std::result::Result<T, Error>;