tauri_plugin_musickit/
error.rs

1use 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>;