lastfm_rust/models/
album_get_info_response.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
4#[serde(rename_all = "camelCase")]
5pub struct AlbumGetInfoResponse {
6    pub album: Album,
7}
8
9#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
10#[serde(rename_all = "camelCase")]
11pub struct Album {
12    pub artist: String,
13    pub image: Vec<Image>,
14    pub listeners: String,
15    pub mbid: String,
16    pub name: String,
17    pub playcount: String,
18    pub tags: Tags,
19    pub tracks: Tracks,
20    pub url: String,
21    pub userplaycount: i64,
22    pub wiki: Wiki,
23}
24
25#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct Image {
28    #[serde(rename = "#text")]
29    pub text: String,
30    pub size: String,
31}
32
33#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
34#[serde(rename_all = "camelCase")]
35pub struct Tags {
36    pub tag: Vec<Tag>,
37}
38
39#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct Tag {
42    pub name: String,
43    pub url: String,
44}
45
46#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
47#[serde(rename_all = "camelCase")]
48pub struct Tracks {
49    pub track: Vec<Track>,
50}
51
52#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct Track {
55    #[serde(rename = "@attr")]
56    pub attr: Attr,
57    pub artist: Artist,
58    pub duration: i64,
59    pub name: String,
60    pub streamable: Streamable,
61    pub url: String,
62}
63
64#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
65#[serde(rename_all = "camelCase")]
66pub struct Attr {
67    pub rank: i64,
68}
69
70#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct Artist {
73    pub mbid: String,
74    pub name: String,
75    pub url: String,
76}
77
78#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
79#[serde(rename_all = "camelCase")]
80pub struct Streamable {
81    #[serde(rename = "#text")]
82    pub text: String,
83    pub fulltrack: String,
84}
85
86#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
87#[serde(rename_all = "camelCase")]
88pub struct Wiki {
89    pub content: String,
90    pub published: String,
91    pub summary: String,
92}