//! MusicHoard - a music collection manager. use serde::{Deserialize, Serialize}; use uuid::Uuid; pub mod database; pub mod library; /// [MusicBrainz Identifier](https://musicbrainz.org/doc/MusicBrainz_Identifier) (MBID). pub type Mbid = Uuid; /// An album artist. Carries a MBID to facilitate discography access. #[derive(Debug, Deserialize, Serialize, PartialEq)] pub struct AlbumArtist { pub name: String, pub mbid: Option, } /// A single track on an album. #[derive(Debug, Deserialize, Serialize, PartialEq)] pub struct Track { pub number: u32, pub title: String, pub artist: Vec, } /// An album is a collection of tracks that were released together. #[derive(Debug, Deserialize, Serialize, PartialEq)] pub struct Album { pub artist: AlbumArtist, pub year: u32, pub title: String, pub tracks: Vec, }