qobuz_api_rust/
models.rs

1/// Qobuz API data models
2///
3/// This module contains all the data structures used to represent Qobuz API responses.
4/// These models are used for deserializing JSON responses from the API into Rust structs.
5/// The models cover all major Qobuz content types including albums, artists, tracks,
6/// playlists, users, and various metadata fields.
7pub mod album;
8/// Article, author, biography, and story models
9///
10/// This module contains models for articles, authors, biographies, and stories
11/// from the Qobuz platform, including their metadata and relationships.
12pub mod article;
13/// Artist model containing comprehensive artist information
14///
15/// This module contains the Artist struct which represents an artist on the Qobuz platform
16/// with their identification, name, profile picture, album counts, roles, and related content.
17pub mod artist;
18/// Core models for API responses and authentication
19///
20/// This module contains fundamental models for API responses, including status responses
21/// and login information, as well as utility functions for deserialization.
22pub mod core;
23/// Credential model containing user credential information
24///
25/// This module contains the Credential struct which represents comprehensive user
26/// credential information including personal details, account settings, and feature availability.
27pub mod credential;
28/// Metadata models for images, audio info, genres, labels, and other metadata
29///
30/// This module contains various models for handling metadata such as images, audio information,
31/// genres, labels, tags, areas, awards, and other related metadata used in the Qobuz API.
32pub mod metadata;
33/// Playlist model containing information about user playlists
34///
35/// This module contains the Playlist struct which represents a playlist with details about
36/// its content, owner, creation date, and various properties.
37pub mod playlist;
38/// Release models containing information about music releases
39///
40/// This module contains models for music releases including release details, tracks,
41/// artists, physical support, rights, and audio information.
42pub mod release;
43/// Search models for search results and related content
44///
45/// This module contains models for search results across different content types
46/// including albums, articles, artists, playlists, tracks, and user favorites.
47pub mod search;
48/// Subscription models containing user subscription information
49///
50/// This module contains models for user subscription details including plan information,
51/// status, dates, and payment information.
52pub mod subscription;
53/// Track model containing comprehensive track information
54///
55/// This module contains the Track struct which represents a track on the Qobuz platform
56/// with its identification, title, version, duration, album, artists, and various metadata.
57pub mod track;
58/// Simplified user model containing basic user information
59///
60/// This module contains the User struct which represents a Qobuz user with their
61/// identification, personal information, account details, and subscription information.
62pub mod user_simple;
63
64/// Re-exports of commonly used models for convenience
65///
66/// This section re-exports the most important data models from the submodules
67/// to provide a convenient and streamlined API for users. These re-exports allow
68/// direct access to the core models without having to specify full module paths.
69pub use {
70    album::Album,
71    article::{Article, Author, Biography, Story},
72    artist::Artist,
73    core::{Login, QobuzApiStatusResponse, deserialize_code},
74    credential::Credential,
75    metadata::{Area, AudioInfo, Award, Focus, Genre, GenreTag, Goody, Image, Label, Period, Tag},
76    playlist::Playlist,
77    release::{
78        FileUrl, Release, ReleaseArtist, ReleaseAudioInfo, ReleasePhysicalSupport, ReleaseRights,
79        ReleaseTrack, ReleaseTrackList, ReleasesList,
80    },
81    search::{
82        AlbumsSameArtist, ItemSearchResult, MostPopular, MostPopularContent, SearchResult,
83        UserFavorites, UserFavoritesIds,
84    },
85    subscription::{LastUpdate, StoreFeatures, Subscription},
86    track::Track,
87    user_simple::User,
88};