1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum LyricsError {
5 #[error("error: {0}")]
6 AnyError(#[from] anyhow::Error),
7
8 #[error("MPRIS error: {0}")]
9 MprisError(#[from] mpris::DBusError),
10
11 #[error("MPRIS Find error: {0}")]
12 MprisFindError(#[from] mpris::FindingError),
13
14 #[error("MPD error: {0}")]
15 MpdError(#[from] mpd::error::Error),
16
17 #[error("HTTP error: {0}")]
18 ReqwestError(#[from] reqwest::Error),
19
20 #[error("I/O error: {0}")]
21 IoError(#[from] std::io::Error),
22
23 #[error("base64 error: {0}")]
24 DecodeError(#[from] base64::DecodeError),
25
26 #[error("No active media player found")]
27 NoPlayerFound,
28
29 #[error("Failed to get cache path")]
30 CachePathError,
31
32 #[error("No lyrics found")]
33 NoLyricsFound,
34
35 #[error("JSON parse error")]
36 JsonError,
37
38 #[error("Lyrics validation failed")]
39 LyricsValidationFailed,
40
41 #[error("Lyrics decode failed")]
42 LyricsDecodeError,
43
44 #[error("Invalid time format")]
45 InvalidTimeFormat,
46
47 #[error("Empty lyrics content")]
48 EmptyLyrics,
49}