1use std::num::ParseIntError;
2
3use thiserror::Error;
4
5use crate::database::DatabaseError;
6
7#[derive(Debug, Error)]
8pub enum ExportError {
9 #[error("IoError: {0}")]
10 Io(#[from] std::io::Error),
11
12 #[error("FfmpegError: {0}")]
13 Ffmpeg(#[from] FfmpegError),
14
15 #[error("DatabaseError: {0}")]
16 Database(#[from] DatabaseError),
17}
18
19#[derive(Debug, Error)]
20pub enum FfmpegError {
21 #[error("IoError: {0}")]
22 Io(#[from] std::io::Error),
23
24 #[error("Invalid UTF-8: {0}")]
25 Utf8(#[from] std::string::FromUtf8Error),
26
27 #[error("JsonError: {0}")]
28 Json(#[from] serde_json::Error),
29
30 #[error("Image does not exist")]
31 ImageDoesNotExist,
32
33 #[error("Error running ffmpeg: {0}")]
34 FfmpegWrapperError(String),
35
36 #[error("Error running Ffprobe: {0}")]
37 FfprobeWrapperError(String),
38
39 #[error("Generic FfmpegError: {0}")]
40 Other(String),
41
42 #[error("Codec Error: {0}")]
43 Codec(#[from] CodecError),
44
45 #[error("Container Error: {0}")]
46 Container(#[from] ContainerError),
47}
48
49#[derive(Debug, Error)]
50pub enum CodecError {
51 #[error("Unknown or unsupported codec: {0}")]
52 Unknown(String),
53}
54
55#[derive(Debug, Error)]
56pub enum ContainerError {
57 #[error("Unknown or unsupported codec: {0}")]
58 Unknown(String),
59}
60
61#[derive(Error, Debug)]
62pub enum LibraryError {
63 #[error(
64 "Failed to update library because no library directory set (Try 'musicmanager library set --help)"
65 )]
66 NoLibrary,
67}
68
69#[derive(Debug, Error)]
70pub enum ExtractError {
71 #[error("IoError: {0}")]
72 Io(#[from] std::io::Error),
73
74 #[error("DatabaseError: {0}")]
75 Database(#[from] DatabaseError),
76
77 #[error("Ffmpeg Error: {0}")]
78 Ffmpeg(#[from] FfmpegError),
79
80 #[error("Format Error: {0}")]
81 Format(#[from] lunar_lib::formatter::FormatError),
82
83 #[error("InvalidContainer Error")]
84 InvalidContainer,
85}
86
87#[derive(Debug, Error)]
88pub enum ImportError {
89 #[error("IoError: {0}")]
90 Io(#[from] std::io::Error),
91
92 #[error("Ffmpeg Error: {0}")]
93 Ffmpeg(#[from] FfmpegError),
94
95 #[error("Database Error: {0}")]
96 Database(#[from] DatabaseError),
97
98 #[error("Library Error: {0}")]
99 Library(#[from] LibraryError),
100}
101
102#[derive(Debug, Error)]
103pub enum MetadataError {
104 #[error("ParseInt Error: {0}")]
105 ParseInt(#[from] ParseIntError),
106
107 #[error("Database Error: {0}")]
108 Database(#[from] DatabaseError),
109
110 #[error("Too many results: {0}")]
111 TooManyResults(String),
112
113 #[error("Missing album: {0}")]
114 MissingAlbum(String),
115
116 #[error("Key not allowed: {0}")]
117 KeyNotAllowed(String),
118
119 #[error("Invalid key: {0}")]
120 InvalidKey(String),
121
122 #[error("Invalid value for key: {0}={1}")]
123 InvalidValue(String, String),
124
125 #[error("Missing album: {0}")]
126 MissingArtist(String),
127}