tauri_plugin_musickit/
error.rs1use serde::Serialize;
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum Error {
6 #[error("Not initialized")]
7 NotInitialized,
8 #[error("Already initialized")]
9 AlreadyInitialized,
10 #[error("Invalid track identifier: {0}")]
11 InvalidTrackIdentifier(String),
12 #[error("Invalid track format: {0}")]
13 InvalidTrackFormat(String),
14 #[error("Platform not supported")]
15 PlatformNotSupported,
16 #[error("MusicKit error: {0}")]
17 MusicKitError(String),
18 #[error("Tauri error: {0}")]
19 Tauri(String),
20}
21
22impl Serialize for Error {
23 fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
24 where
25 S: serde::Serializer,
26 {
27 serializer.serialize_str(&self.to_string())
28 }
29}
30
31impl From<tauri::Error> for Error {
32 fn from(error: tauri::Error) -> Self {
33 Error::Tauri(error.to_string())
34 }
35}
36
37#[cfg(mobile)]
38impl From<tauri::plugin::mobile::PluginInvokeError> for Error {
39 fn from(error: tauri::plugin::mobile::PluginInvokeError) -> Self {
40 Error::Tauri(error.to_string())
41 }
42}
43
44pub type Result<T> = std::result::Result<T, Error>;