#[warn(missing_docs)]
use crate::models::DeezerObject;
use crate::Result;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, Debug)]
pub struct Artist {
pub id: u64,
pub name: String,
pub link: String,
#[serde(rename = "share")]
pub share_link: String,
pub picture: String,
pub picture_small: String,
pub picture_medium: String,
pub picture_big: String,
pub picture_xl: String,
pub nb_album: u64,
pub nb_fan: u64,
#[serde(rename = "radio")]
pub has_radio: bool,
pub tracklist: String,
}
impl DeezerObject for Artist {
fn get_api_url(id: u64) -> String {
format!("artist/{}", id)
}
}
#[derive(Deserialize, Serialize, Debug, Clone)]
pub struct ContributorArtist {
pub id: u64,
pub name: String,
pub link: String,
#[serde(rename = "share")]
pub share_link: String,
pub picture_small: String,
pub picture_medium: String,
pub picture_big: String,
pub picture_xl: String,
#[serde(rename = "radio")]
pub has_radio: bool,
pub tracklist: String,
}
impl ContributorArtist {
pub async fn get_full(&self) -> Result<Artist> {
let artist = Artist::get(self.id).await?.unwrap();
Ok(artist)
}
}