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
use std::path::Path; use std::time::SystemTime; pub struct Playlist<'a> { pub meta: PlaylistMeta, pub tracks: Vec<&'a Track<'a>>, } pub struct PlaylistMeta { pub name: String, pub timestamp: SystemTime, pub dl_source: DownloadSource, pub playlist_source: PlaylistSource, } pub enum DownloadSource { MyFreeMp3, } pub enum PlaylistSource { Soundcloud, Spotify, } pub struct Track<'a> { pub tags: IDv3Tags, pub meta: &'a TrackMeta<'a>, } pub struct IDv3Tags { pub title: String, pub artists: Vec<String>, } pub struct TrackMeta<'a> { pub timestamp: SystemTime, pub cache_dir: Option<&'a Path>, }