1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
//! [User API](https://developers.deezer.com/api/user) use crate::models::DeezerObject; #[warn(missing_docs)] use serde::{Deserialize, Serialize}; /// Contains all the information provided for a User. /// /// # Examples /// /// You can query a user by id via the [`DeezerObject::get()`] method: /// /// ```rust /// # use deezer::models::*; /// # use deezer::DeezerError; /// # #[tokio::main] /// # async fn main() -> Result<(), DeezerError> { /// let user = User::get(12).await?.unwrap(); /// # assert_eq!(user.id, 12); /// # Ok(()) /// # } /// ``` /// /// Or you can use [`DeezerClient::user()`](crate::DeezerClient::user()): /// /// ```rust /// # use deezer::models::*; /// # use deezer::{DeezerClient, DeezerError}; /// # #[tokio::main] /// # async fn main() -> Result<(), DeezerError> { /// let deezer = DeezerClient::new(); /// let user = deezer.user(12).await?.unwrap(); /// # assert_eq!(user.id, 12); /// # Ok(()) /// # } /// /// ``` #[derive(Deserialize, Serialize, Debug, Clone)] pub struct User { /// The user's Deezer ID pub id: u64, /// The user's Deezer nickname pub name: String, /// The user's last name #[serde(default)] #[serde(rename = "lastname")] pub last_name: String, /// The user's first name #[serde(default)] #[serde(rename = "firstname")] pub first_name: String, /// The user's email #[serde(default)] pub email: String, /// The user's status #[serde(default)] pub status: u64, /// The user's birthday #[serde(default)] pub birthday: String, /// The user's inscription date #[serde(default)] pub inscription_date: String, /// The user's gender : F or M #[serde(default)] pub gender: String, /// The url of the profil for the user on Deezer pub link: String, /// The url of the user's profile picture. pub picture: String, /// The url of the user's profile picture in size small. pub picture_small: String, /// The url of the user's profile picture in size medium. pub picture_medium: String, /// The url of the user's profile picture in size big. pub picture_big: String, /// The url of the user's profile picture in size xl. pub picture_xl: String, /// The user's country pub country: String, /// The user's language #[serde(default)] pub lang: String, /// If the user is a kid or not #[serde(default)] pub is_kid: bool, /// API Link to the flow of this user #[serde(rename = "tracklist")] pub track_list: String, } impl DeezerObject for User { fn get_api_url(id: u64) -> String { format!("user/{}", id) } }