Skip to main content

rsoundcloud/models/
mod.rs

1use like::{PlaylistLike, TrackLike};
2use playlist::AlbumPlaylist;
3use stream::{PlaylistStreamItem, PlaylistStreamRepostItem, TrackStreamItem, TrackStreamRepostItem};
4use track::Track;
5use serde::{Deserialize, Serialize};
6use user::User;
7
8pub mod track;
9pub mod user;
10pub mod visual;
11pub mod comment;
12pub mod conversation;
13pub mod message;
14pub mod download;
15pub mod graphql;
16pub mod history;
17pub mod like;
18pub mod playlist;
19pub mod response;
20pub mod stream;
21pub mod web_profile;
22
23// ================================================================================
24// Union enums
25// ================================================================================
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub enum SearchItem {
29    Track(Track),
30    User(User),
31    AlbumPlaylist(AlbumPlaylist),
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub enum StreamItem {
36    TrackStreamItem(TrackStreamItem),
37    PlaylistStreamItem(PlaylistStreamItem),
38    TrackStreamRepostItem(TrackStreamRepostItem),
39    PlaylistStreamRepostItem(PlaylistStreamRepostItem),
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43pub enum RepostItem {
44    TrackStreamRepostItem(TrackStreamRepostItem),
45    PlaylistStreamRepostItem(PlaylistStreamRepostItem),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
49pub enum LikeItem {
50    TrackLike(TrackLike),
51    PlaylistLike(PlaylistLike),
52}