use serde::{Deserialize, Serialize};
pub mod account;
pub use account::*;
pub mod annotation;
pub use annotation::*;
pub mod artist;
pub use artist::*;
pub mod metadata;
pub use metadata::*;
pub mod referent;
pub use referent::*;
pub mod search;
pub use search::*;
pub mod song;
pub use song::*;
pub mod user;
pub use user::*;
pub mod webpage;
pub use webpage::*;
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
#[serde(untagged)]
pub enum Response<T> {
Success {
meta: SuccessMeta,
response: T,
},
Error {
meta: ErrorMeta,
#[serde(skip_serializing_if = "Option::is_none")]
response: Option<ErrorResponse>,
},
Other {
error: String,
error_description: String,
},
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Default)]
pub struct ErrorResponse {
pub error: String,
}
#[derive(Debug, Clone, Copy, Deserialize, Serialize, PartialEq, Default)]
pub struct SuccessMeta {
pub status: u16,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Default)]
pub struct ErrorMeta {
pub status: u16,
pub message: String,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)]
pub struct Text {
pub plain: String,
pub html: String,
}