Skip to main content

soup_sdk/
error.rs

1use thiserror::Error;
2
3// 모든 아이템을 pub로 만들어 다른 모듈에서 가져다 쓸 수 있게 합니다.
4#[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>;