Skip to main content

lyrics_next/
error.rs

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}