make yt-dlp error message its own enum type

This commit is contained in:
mykola2312 2024-02-20 21:06:47 +02:00
parent b188551885
commit 0491be57c8

View file

@ -131,12 +131,16 @@ impl YtDlpInfo {
#[derive(Debug)] #[derive(Debug)]
pub enum YtDlpError { pub enum YtDlpError {
SpawnError(SpawnError), SpawnError(SpawnError),
ErrorMessage(String), // keep it separate type if we ever plan to parse yt-dlp errors
JsonError, JsonError,
} }
impl From<SpawnError> for YtDlpError { impl From<SpawnError> for YtDlpError {
fn from(value: SpawnError) -> Self { fn from(value: SpawnError) -> Self {
Self::SpawnError(value) match value {
SpawnError::ErrorMessage(msg) => Self::ErrorMessage(msg),
_ => Self::SpawnError(value)
}
} }
} }
@ -151,6 +155,7 @@ impl fmt::Display for YtDlpError {
use YtDlpError as YTE; use YtDlpError as YTE;
match self { match self {
YTE::SpawnError(e) => write!(f, "{}", e), YTE::SpawnError(e) => write!(f, "{}", e),
YTE::ErrorMessage(msg) => write!(f, "yt-dlp error - {}", msg),
YTE::JsonError => write!(f, "json parsing error"), YTE::JsonError => write!(f, "json parsing error"),
} }
} }