From c03bfe50215aac4d237cdd85ceca340f2533b2f5 Mon Sep 17 00:00:00 2001 From: Wojciech Kozlowski Date: Wed, 1 Jan 2025 18:12:37 +0100 Subject: [PATCH] Collect library id --- src/core/collection/album.rs | 8 +++ src/core/interface/library/mod.rs | 14 ++++- src/core/interface/library/testmod.rs | 24 +++++++- src/external/library/beets/mod.rs | 37 ++++++++---- src/external/library/beets/testmod.rs | 44 +++++++------- tests/library/testmod.rs | 82 ++++++++++++++++++++++++++- 6 files changed, 171 insertions(+), 38 deletions(-) diff --git a/src/core/collection/album.rs b/src/core/collection/album.rs index 6356692..7919d6a 100644 --- a/src/core/collection/album.rs +++ b/src/core/collection/album.rs @@ -47,6 +47,14 @@ pub struct AlbumId { pub title: String, } +/// Unique library identifier. +#[derive(Clone, Debug, PartialEq, PartialOrd, Ord, Eq, Hash)] +pub enum AlbumLibId { + Some(u32), + Singleton, + None, +} + // There are crates for handling dates, but we don't need much complexity beyond year-month-day. /// The album's release date. #[derive(Clone, Debug, Default, PartialEq, Eq, PartialOrd, Ord)] diff --git a/src/core/interface/library/mod.rs b/src/core/interface/library/mod.rs index 76609bc..aedbe01 100644 --- a/src/core/interface/library/mod.rs +++ b/src/core/interface/library/mod.rs @@ -1,11 +1,11 @@ //! Module for interacting with the music library. -use std::{collections::HashSet, fmt, num::ParseIntError, str::Utf8Error}; +use std::{collections::HashSet, fmt, num::ParseIntError, str::{ParseBoolError, Utf8Error}}; #[cfg(test)] use mockall::automock; -use crate::core::collection::track::TrackFormat; +use crate::{collection::album::AlbumLibId, core::collection::track::TrackFormat}; /// Trait for interacting with the music library. #[cfg_attr(test, automock)] @@ -32,6 +32,7 @@ pub struct Item { pub album_month: u8, pub album_day: u8, pub album_title: String, + pub album_lib_id: AlbumLibId, pub track_number: u32, pub track_title: String, pub track_artist: Vec, @@ -90,6 +91,8 @@ pub enum Error { Io(String), /// The library received invalid data. Invalid(String), + /// The library failed to parse a boolean. + ParseBool(String), /// The library failed to parse an integer. ParseInt(String), /// The library failed to parse a UTF-8 string. @@ -102,6 +105,7 @@ impl fmt::Display for Error { Self::Executor(ref s) => write!(f, "the library's executor failed: {s}"), Self::Io(ref s) => write!(f, "the library experienced an I/O error: {s}"), Self::Invalid(ref s) => write!(f, "the library received invalid data: {s}"), + Self::ParseBool(ref s) => write!(f, "the library failed to parse a boolean: {s}"), Self::ParseInt(ref s) => write!(f, "the library failed to parse an integer: {s}"), Self::Utf8(ref s) => write!(f, "the library failed to parse a UTF-8 string: {s}"), } @@ -114,6 +118,12 @@ impl From for Error { } } +impl From for Error { + fn from(err: ParseBoolError) -> Error { + Error::ParseBool(err.to_string()) + } +} + impl From for Error { fn from(err: ParseIntError) -> Error { Error::ParseInt(err.to_string()) diff --git a/src/core/interface/library/testmod.rs b/src/core/interface/library/testmod.rs index 6afc5b9..8650732 100644 --- a/src/core/interface/library/testmod.rs +++ b/src/core/interface/library/testmod.rs @@ -1,6 +1,6 @@ use once_cell::sync::Lazy; -use crate::core::{collection::track::TrackFormat, interface::library::Item}; +use crate::{collection::album::AlbumLibId, core::{collection::track::TrackFormat, interface::library::Item}}; pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { vec![ @@ -11,6 +11,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title a.a"), + album_lib_id: AlbumLibId::Some(1), track_number: 1, track_title: String::from("track a.a.1"), track_artist: vec![String::from("artist a.a.1")], @@ -24,6 +25,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title a.a"), + album_lib_id: AlbumLibId::Some(1), track_number: 2, track_title: String::from("track a.a.2"), track_artist: vec![ @@ -40,6 +42,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title a.a"), + album_lib_id: AlbumLibId::Some(1), track_number: 3, track_title: String::from("track a.a.3"), track_artist: vec![String::from("artist a.a.3")], @@ -53,6 +56,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title a.a"), + album_lib_id: AlbumLibId::Some(1), track_number: 4, track_title: String::from("track a.a.4"), track_artist: vec![String::from("artist a.a.4")], @@ -66,6 +70,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 4, album_day: 0, album_title: String::from("album_title a.b"), + album_lib_id: AlbumLibId::Some(2), track_number: 1, track_title: String::from("track a.b.1"), track_artist: vec![String::from("artist a.b.1")], @@ -79,6 +84,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 4, album_day: 0, album_title: String::from("album_title a.b"), + album_lib_id: AlbumLibId::Some(2), track_number: 2, track_title: String::from("track a.b.2"), track_artist: vec![String::from("artist a.b.2")], @@ -92,6 +98,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 6, album_day: 6, album_title: String::from("album_title b.a"), + album_lib_id: AlbumLibId::Some(3), track_number: 1, track_title: String::from("track b.a.1"), track_artist: vec![String::from("artist b.a.1")], @@ -105,6 +112,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 6, album_day: 6, album_title: String::from("album_title b.a"), + album_lib_id: AlbumLibId::Some(3), track_number: 2, track_title: String::from("track b.a.2"), track_artist: vec![ @@ -121,6 +129,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.b"), + album_lib_id: AlbumLibId::Some(4), track_number: 1, track_title: String::from("track b.b.1"), track_artist: vec![String::from("artist b.b.1")], @@ -134,6 +143,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.b"), + album_lib_id: AlbumLibId::Some(4), track_number: 2, track_title: String::from("track b.b.2"), track_artist: vec![ @@ -150,6 +160,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.c"), + album_lib_id: AlbumLibId::Some(5), track_number: 1, track_title: String::from("track b.c.1"), track_artist: vec![String::from("artist b.c.1")], @@ -163,6 +174,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.c"), + album_lib_id: AlbumLibId::Some(5), track_number: 2, track_title: String::from("track b.c.2"), track_artist: vec![ @@ -179,6 +191,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.d"), + album_lib_id: AlbumLibId::Some(6), track_number: 1, track_title: String::from("track b.d.1"), track_artist: vec![String::from("artist b.d.1")], @@ -192,6 +205,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title b.d"), + album_lib_id: AlbumLibId::Some(6), track_number: 2, track_title: String::from("track b.d.2"), track_artist: vec![ @@ -208,6 +222,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title c.a"), + album_lib_id: AlbumLibId::Some(7), track_number: 1, track_title: String::from("track c.a.1"), track_artist: vec![String::from("artist c.a.1")], @@ -221,6 +236,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title c.a"), + album_lib_id: AlbumLibId::Some(7), track_number: 2, track_title: String::from("track c.a.2"), track_artist: vec![ @@ -237,6 +253,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title c.b"), + album_lib_id: AlbumLibId::Some(8), track_number: 1, track_title: String::from("track c.b.1"), track_artist: vec![String::from("artist c.b.1")], @@ -250,6 +267,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title c.b"), + album_lib_id: AlbumLibId::Some(8), track_number: 2, track_title: String::from("track c.b.2"), track_artist: vec![ @@ -266,6 +284,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title d.a"), + album_lib_id: AlbumLibId::Some(9), track_number: 1, track_title: String::from("track d.a.1"), track_artist: vec![String::from("artist d.a.1")], @@ -279,6 +298,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title d.a"), + album_lib_id: AlbumLibId::Some(9), track_number: 2, track_title: String::from("track d.a.2"), track_artist: vec![ @@ -295,6 +315,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title d.b"), + album_lib_id: AlbumLibId::Some(10), track_number: 1, track_title: String::from("track d.b.1"), track_artist: vec![String::from("artist d.b.1")], @@ -308,6 +329,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("album_title d.b"), + album_lib_id: AlbumLibId::Some(10), track_number: 2, track_title: String::from("track d.b.2"), track_artist: vec![ diff --git a/src/external/library/beets/mod.rs b/src/external/library/beets/mod.rs index e157029..2cbfd9d 100644 --- a/src/external/library/beets/mod.rs +++ b/src/external/library/beets/mod.rs @@ -6,9 +6,12 @@ pub mod executor; #[cfg(test)] use mockall::automock; -use crate::core::{ - collection::track::TrackFormat, - interface::library::{Error, Field, ILibrary, Item, Query}, +use crate::{ + collection::album::AlbumLibId, + core::{ + collection::track::TrackFormat, + interface::library::{Error, Field, ILibrary, Item, Query}, + }, }; macro_rules! list_format_separator { @@ -31,8 +34,12 @@ const LIST_FORMAT_ARG: &str = concat!( list_format_separator!(), "$day", list_format_separator!(), + "$singleton", + list_format_separator!(), "$album", list_format_separator!(), + "$album_id", + list_format_separator!(), "$track", list_format_separator!(), "$title", @@ -144,7 +151,7 @@ impl BeetsLibrary { } let split: Vec<&str> = line.split(LIST_FORMAT_SEPARATOR).collect(); - if split.len() != 11 { + if split.len() != 13 { return Err(Error::Invalid(line.to_string())); } @@ -156,15 +163,20 @@ impl BeetsLibrary { let album_year = split[2].parse::()?; let album_month = split[3].parse::()?; let album_day = split[4].parse::()?; - let album_title = split[5].to_string(); - let track_number = split[6].parse::()?; - let track_title = split[7].to_string(); - let track_artist = split[8].split("; ").map(|s| s.to_owned()).collect(); - let track_format = match str_to_format(split[9].to_string().as_str()) { + let singleton = split[5].to_lowercase().parse::()?; + let album_title = split[6].to_string(); + let album_lib_id = match singleton { + true => AlbumLibId::Singleton, + false => AlbumLibId::Some(split[7].parse::()?), + }; + let track_number = split[8].parse::()?; + let track_title = split[9].to_string(); + let track_artist = split[10].split("; ").map(|s| s.to_owned()).collect(); + let track_format = match str_to_format(split[11].to_string().as_str()) { Some(format) => format, None => return Err(Error::Invalid(line.to_string())), }; - let track_bitrate = split[10].trim_end_matches("kbps").parse::()?; + let track_bitrate = split[12].trim_end_matches("kbps").parse::()?; items.push(Item { album_artist, @@ -173,6 +185,7 @@ impl BeetsLibrary { album_month, album_day, album_title, + album_lib_id, track_number, track_title, track_artist, @@ -358,8 +371,8 @@ mod tests { .split(LIST_FORMAT_SEPARATOR) .map(|s| s.to_owned()) .collect::>(); - invalid_string[9].clear(); - invalid_string[9].push_str("invalid format"); + invalid_string[11].clear(); + invalid_string[11].push_str("invalid format"); let invalid_string = invalid_string.join(LIST_FORMAT_SEPARATOR); output[2] = invalid_string.clone(); let result = Ok(output); diff --git a/src/external/library/beets/testmod.rs b/src/external/library/beets/testmod.rs index b0fc10a..e75f1f4 100644 --- a/src/external/library/beets/testmod.rs +++ b/src/external/library/beets/testmod.rs @@ -4,112 +4,112 @@ pub static LIBRARY_BEETS: Lazy> = Lazy::new(|| -> Vec { vec![ String::from( "Album_Artist ‘A’ -*^- -*^- \ - 1998 -*^- 00 -*^- 00 -*^- album_title a.a -*^- \ + 1998 -*^- 00 -*^- 00 -*^- False -*^- album_title a.a -*^- 1 -*^- \ 1 -*^- track a.a.1 -*^- artist a.a.1 -*^- FLAC -*^- 992", ), String::from( "Album_Artist ‘A’ -*^- -*^- \ - 1998 -*^- 00 -*^- 00 -*^- album_title a.a -*^- \ + 1998 -*^- 00 -*^- 00 -*^- False -*^- album_title a.a -*^- 1 -*^- \ 2 -*^- track a.a.2 -*^- artist a.a.2.1; artist a.a.2.2 -*^- MP3 -*^- 320", ), String::from( "Album_Artist ‘A’ -*^- -*^- \ - 1998 -*^- 00 -*^- 00 -*^- album_title a.a -*^- \ + 1998 -*^- 00 -*^- 00 -*^- False -*^- album_title a.a -*^- 1 -*^- \ 3 -*^- track a.a.3 -*^- artist a.a.3 -*^- FLAC -*^- 1061", ), String::from( "Album_Artist ‘A’ -*^- -*^- \ - 1998 -*^- 00 -*^- 00 -*^- album_title a.a -*^- \ + 1998 -*^- 00 -*^- 00 -*^- False -*^- album_title a.a -*^- 1 -*^- \ 4 -*^- track a.a.4 -*^- artist a.a.4 -*^- FLAC -*^- 1042", ), String::from( "Album_Artist ‘A’ -*^- -*^- \ - 2015 -*^- 04 -*^- 00 -*^- album_title a.b -*^- \ + 2015 -*^- 04 -*^- 00 -*^- False -*^- album_title a.b -*^- 2 -*^- \ 1 -*^- track a.b.1 -*^- artist a.b.1 -*^- FLAC -*^- 1004", ), String::from( "Album_Artist ‘A’ -*^- -*^- \ - 2015 -*^- 04 -*^- 00 -*^- album_title a.b -*^- \ + 2015 -*^- 04 -*^- 00 -*^- False -*^- album_title a.b -*^- 2 -*^- \ 2 -*^- track a.b.2 -*^- artist a.b.2 -*^- FLAC -*^- 1077", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2003 -*^- 06 -*^- 06 -*^- album_title b.a -*^- \ + 2003 -*^- 06 -*^- 06 -*^- False -*^- album_title b.a -*^- 3 -*^- \ 1 -*^- track b.a.1 -*^- artist b.a.1 -*^- MP3 -*^- 190", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2003 -*^- 06 -*^- 06 -*^- album_title b.a -*^- \ + 2003 -*^- 06 -*^- 06 -*^- False -*^- album_title b.a -*^- 3 -*^- \ 2 -*^- track b.a.2 -*^- artist b.a.2.1; artist b.a.2.2 -*^- MP3 -*^- 120", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2008 -*^- 00 -*^- 00 -*^- album_title b.b -*^- \ + 2008 -*^- 00 -*^- 00 -*^- False -*^- album_title b.b -*^- 4 -*^- \ 1 -*^- track b.b.1 -*^- artist b.b.1 -*^- FLAC -*^- 1077", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2008 -*^- 00 -*^- 00 -*^- album_title b.b -*^- \ + 2008 -*^- 00 -*^- 00 -*^- False -*^- album_title b.b -*^- 4 -*^- \ 2 -*^- track b.b.2 -*^- artist b.b.2.1; artist b.b.2.2 -*^- MP3 -*^- 320", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2009 -*^- 00 -*^- 00 -*^- album_title b.c -*^- \ + 2009 -*^- 00 -*^- 00 -*^- False -*^- album_title b.c -*^- 5 -*^- \ 1 -*^- track b.c.1 -*^- artist b.c.1 -*^- MP3 -*^- 190", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2009 -*^- 00 -*^- 00 -*^- album_title b.c -*^- \ + 2009 -*^- 00 -*^- 00 -*^- False -*^- album_title b.c -*^- 5 -*^- \ 2 -*^- track b.c.2 -*^- artist b.c.2.1; artist b.c.2.2 -*^- MP3 -*^- 120", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2015 -*^- 00 -*^- 00 -*^- album_title b.d -*^- \ + 2015 -*^- 00 -*^- 00 -*^- False -*^- album_title b.d -*^- 6 -*^- \ 1 -*^- track b.d.1 -*^- artist b.d.1 -*^- MP3 -*^- 190", ), String::from( "Album_Artist ‘B’ -*^- -*^- \ - 2015 -*^- 00 -*^- 00 -*^- album_title b.d -*^- \ + 2015 -*^- 00 -*^- 00 -*^- False -*^- album_title b.d -*^- 6 -*^- \ 2 -*^- track b.d.2 -*^- artist b.d.2.1; artist b.d.2.2 -*^- MP3 -*^- 120", ), String::from( "The Album_Artist ‘C’ -*^- Album_Artist ‘C’, The -*^- \ - 1985 -*^- 00 -*^- 00 -*^- album_title c.a -*^- \ + 1985 -*^- 00 -*^- 00 -*^- False -*^- album_title c.a -*^- 7 -*^- \ 1 -*^- track c.a.1 -*^- artist c.a.1 -*^- MP3 -*^- 320", ), String::from( "The Album_Artist ‘C’ -*^- Album_Artist ‘C’, The -*^- \ - 1985 -*^- 00 -*^- 00 -*^- album_title c.a -*^- \ + 1985 -*^- 00 -*^- 00 -*^- False -*^- album_title c.a -*^- 7 -*^- \ 2 -*^- track c.a.2 -*^- artist c.a.2.1; artist c.a.2.2 -*^- MP3 -*^- 120", ), String::from( "The Album_Artist ‘C’ -*^- Album_Artist ‘C’, The -*^- \ - 2018 -*^- 00 -*^- 00 -*^- album_title c.b -*^- \ + 2018 -*^- 00 -*^- 00 -*^- False -*^- album_title c.b -*^- 8 -*^- \ 1 -*^- track c.b.1 -*^- artist c.b.1 -*^- FLAC -*^- 1041", ), String::from( "The Album_Artist ‘C’ -*^- Album_Artist ‘C’, The -*^- \ - 2018 -*^- 00 -*^- 00 -*^- album_title c.b -*^- \ + 2018 -*^- 00 -*^- 00 -*^- False -*^- album_title c.b -*^- 8 -*^- \ 2 -*^- track c.b.2 -*^- artist c.b.2.1; artist c.b.2.2 -*^- FLAC -*^- 756", ), String::from( "Album_Artist ‘D’ -*^- -*^- \ - 1995 -*^- 00 -*^- 00 -*^- album_title d.a -*^- \ + 1995 -*^- 00 -*^- 00 -*^- False -*^- album_title d.a -*^- 9 -*^- \ 1 -*^- track d.a.1 -*^- artist d.a.1 -*^- MP3 -*^- 120", ), String::from( "Album_Artist ‘D’ -*^- -*^- \ - 1995 -*^- 00 -*^- 00 -*^- album_title d.a -*^- \ + 1995 -*^- 00 -*^- 00 -*^- False -*^- album_title d.a -*^- 9 -*^- \ 2 -*^- track d.a.2 -*^- artist d.a.2.1; artist d.a.2.2 -*^- MP3 -*^- 120", ), String::from( "Album_Artist ‘D’ -*^- -*^- \ - 2028 -*^- 00 -*^- 00 -*^- album_title d.b -*^- \ + 2028 -*^- 00 -*^- 00 -*^- False -*^- album_title d.b -*^- 10 -*^- \ 1 -*^- track d.b.1 -*^- artist d.b.1 -*^- FLAC -*^- 841", ), String::from( "Album_Artist ‘D’ -*^- -*^- \ - 2028 -*^- 00 -*^- 00 -*^- album_title d.b -*^- \ + 2028 -*^- 00 -*^- 00 -*^- False -*^- album_title d.b -*^- 10 -*^- \ 2 -*^- track d.b.2 -*^- artist d.b.2.1; artist d.b.2.2 -*^- FLAC -*^- 756", ), ] diff --git a/tests/library/testmod.rs b/tests/library/testmod.rs index ba62508..295268d 100644 --- a/tests/library/testmod.rs +++ b/tests/library/testmod.rs @@ -1,6 +1,6 @@ use once_cell::sync::Lazy; -use musichoard::{collection::track::TrackFormat, interface::library::Item}; +use musichoard::{collection::{album::AlbumLibId, track::TrackFormat}, interface::library::Item}; pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { vec![ @@ -11,6 +11,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 1, track_title: String::from("Az’"), track_artist: vec![String::from("Аркона")], @@ -24,6 +25,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 2, track_title: String::from("Arkaim"), track_artist: vec![String::from("Аркона")], @@ -37,6 +39,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 3, track_title: String::from("Bol’no mne"), track_artist: vec![String::from("Аркона")], @@ -50,6 +53,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 4, track_title: String::from("Leshiy"), track_artist: vec![String::from("Аркона")], @@ -63,6 +67,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 5, track_title: String::from("Zakliatie"), track_artist: vec![String::from("Аркона")], @@ -76,6 +81,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 6, track_title: String::from("Predok"), track_artist: vec![String::from("Аркона")], @@ -89,6 +95,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 7, track_title: String::from("Nikogda"), track_artist: vec![String::from("Аркона")], @@ -102,6 +109,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 8, track_title: String::from("Tam za tumanami"), track_artist: vec![String::from("Аркона")], @@ -115,6 +123,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 9, track_title: String::from("Potomok"), track_artist: vec![String::from("Аркона")], @@ -128,6 +137,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 10, track_title: String::from("Slovo"), track_artist: vec![String::from("Аркона")], @@ -141,6 +151,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 11, track_title: String::from("Odna"), track_artist: vec![String::from("Аркона")], @@ -154,6 +165,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 12, track_title: String::from("Vo moiom sadochke…"), track_artist: vec![String::from("Аркона")], @@ -167,6 +179,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 13, track_title: String::from("Stenka na stenku"), track_artist: vec![String::from("Аркона")], @@ -180,6 +193,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slovo"), + album_lib_id: AlbumLibId::Some(7), track_number: 14, track_title: String::from("Zimushka"), track_artist: vec![String::from("Аркона")], @@ -193,6 +207,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 1, track_title: String::from("Verja Urit an Bitus"), track_artist: vec![String::from("Eluveitie")], @@ -206,6 +221,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 2, track_title: String::from("Uis Elveti"), track_artist: vec![String::from("Eluveitie")], @@ -219,6 +235,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 3, track_title: String::from("Ôrô"), track_artist: vec![String::from("Eluveitie")], @@ -232,6 +249,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 4, track_title: String::from("Lament"), track_artist: vec![String::from("Eluveitie")], @@ -245,6 +263,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 5, track_title: String::from("Druid"), track_artist: vec![String::from("Eluveitie")], @@ -258,6 +277,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Vên [re‐recorded]"), + album_lib_id: AlbumLibId::Some(1), track_number: 6, track_title: String::from("Jêzaïg"), track_artist: vec![String::from("Eluveitie")], @@ -271,6 +291,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 1, track_title: String::from("Samon"), track_artist: vec![String::from("Eluveitie")], @@ -284,6 +305,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 2, track_title: String::from("Primordial Breath"), track_artist: vec![String::from("Eluveitie")], @@ -297,6 +319,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 3, track_title: String::from("Inis Mona"), track_artist: vec![String::from("Eluveitie")], @@ -310,6 +333,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 4, track_title: String::from("Gray Sublime Archon"), track_artist: vec![String::from("Eluveitie")], @@ -323,6 +347,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 5, track_title: String::from("Anagantios"), track_artist: vec![String::from("Eluveitie")], @@ -336,6 +361,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 6, track_title: String::from("Bloodstained Ground"), track_artist: vec![String::from("Eluveitie")], @@ -349,6 +375,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 7, track_title: String::from("The Somber Lay"), track_artist: vec![String::from("Eluveitie")], @@ -362,6 +389,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 8, track_title: String::from("Slanias Song"), track_artist: vec![String::from("Eluveitie")], @@ -375,6 +403,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 9, track_title: String::from("Giamonios"), track_artist: vec![String::from("Eluveitie")], @@ -388,6 +417,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 10, track_title: String::from("Tarvos"), track_artist: vec![String::from("Eluveitie")], @@ -401,6 +431,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 11, track_title: String::from("Calling the Rain"), track_artist: vec![String::from("Eluveitie")], @@ -414,6 +445,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Slania"), + album_lib_id: AlbumLibId::Some(2), track_number: 12, track_title: String::from("Elembivos"), track_artist: vec![String::from("Eluveitie")], @@ -427,6 +459,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 1, track_title: String::from("Intro = Chaos"), track_artist: vec![String::from("Frontside")], @@ -440,6 +473,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 2, track_title: String::from("Modlitwa"), track_artist: vec![String::from("Frontside")], @@ -453,6 +487,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 3, track_title: String::from("Długa droga z piekła"), track_artist: vec![String::from("Frontside")], @@ -466,6 +501,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 4, track_title: String::from("Synowie ognia"), track_artist: vec![String::from("Frontside")], @@ -479,6 +515,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 5, track_title: String::from("1902"), track_artist: vec![String::from("Frontside")], @@ -492,6 +529,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 6, track_title: String::from("Krew za krew"), track_artist: vec![String::from("Frontside")], @@ -505,6 +543,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 7, track_title: String::from("Kulminacja"), track_artist: vec![String::from("Frontside")], @@ -518,6 +557,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 8, track_title: String::from("Judasz"), track_artist: vec![String::from("Frontside")], @@ -531,6 +571,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 9, track_title: String::from("Więzy"), track_artist: vec![String::from("Frontside")], @@ -544,6 +585,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 10, track_title: String::from("Zagubione dusze"), track_artist: vec![String::from("Frontside")], @@ -557,6 +599,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("…nasze jest królestwo, potęga i chwała na wieki…"), + album_lib_id: AlbumLibId::Some(3), track_number: 11, track_title: String::from("Linia życia"), track_artist: vec![String::from("Frontside")], @@ -570,6 +613,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Paper Plague"), + album_lib_id: AlbumLibId::Singleton, track_number: 0, track_title: String::from("Paper Plague"), track_artist: vec![String::from("Heaven’s Basement")], @@ -583,6 +627,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 1, track_title: String::from("Unbreakable"), track_artist: vec![String::from("Heaven’s Basement")], @@ -596,6 +641,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 2, track_title: String::from("Guilt Trips and Sins"), track_artist: vec![String::from("Heaven’s Basement")], @@ -609,6 +655,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 3, track_title: String::from("The Long Goodbye"), track_artist: vec![String::from("Heaven’s Basement")], @@ -622,6 +669,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 4, track_title: String::from("Close Encounters"), track_artist: vec![String::from("Heaven’s Basement")], @@ -635,6 +683,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 5, track_title: String::from("Paranoia"), track_artist: vec![String::from("Heaven’s Basement")], @@ -648,6 +697,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 6, track_title: String::from("Let Me Out of Here"), track_artist: vec![String::from("Heaven’s Basement")], @@ -661,6 +711,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Unbreakable"), + album_lib_id: AlbumLibId::Some(4), track_number: 7, track_title: String::from("Leeches"), track_artist: vec![String::from("Heaven’s Basement")], @@ -674,6 +725,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 1, track_title: String::from("Fight Fire with Fire"), track_artist: vec![String::from("Metallica")], @@ -687,6 +739,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 2, track_title: String::from("Ride the Lightning"), track_artist: vec![String::from("Metallica")], @@ -700,6 +753,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 3, track_title: String::from("For Whom the Bell Tolls"), track_artist: vec![String::from("Metallica")], @@ -713,6 +767,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 4, track_title: String::from("Fade to Black"), track_artist: vec![String::from("Metallica")], @@ -726,6 +781,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 5, track_title: String::from("Trapped under Ice"), track_artist: vec![String::from("Metallica")], @@ -739,6 +795,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 6, track_title: String::from("Escape"), track_artist: vec![String::from("Metallica")], @@ -752,6 +809,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 7, track_title: String::from("Creeping Death"), track_artist: vec![String::from("Metallica")], @@ -765,6 +823,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("Ride the Lightning"), + album_lib_id: AlbumLibId::Some(5), track_number: 8, track_title: String::from("The Call of Ktulu"), track_artist: vec![String::from("Metallica")], @@ -778,6 +837,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 1, track_title: String::from("The Ecstasy of Gold"), track_artist: vec![String::from("Metallica")], @@ -791,6 +851,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 2, track_title: String::from("The Call of Ktulu"), track_artist: vec![String::from("Metallica")], @@ -804,6 +865,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 3, track_title: String::from("Master of Puppets"), track_artist: vec![String::from("Metallica")], @@ -817,6 +879,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 4, track_title: String::from("Of Wolf and Man"), track_artist: vec![String::from("Metallica")], @@ -830,6 +893,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 5, track_title: String::from("The Thing That Should Not Be"), track_artist: vec![String::from("Metallica")], @@ -843,6 +907,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 6, track_title: String::from("Fuel"), track_artist: vec![String::from("Metallica")], @@ -856,6 +921,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 7, track_title: String::from("The Memory Remains"), track_artist: vec![String::from("Metallica")], @@ -869,6 +935,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 8, track_title: String::from("No Leaf Clover"), track_artist: vec![String::from("Metallica")], @@ -882,6 +949,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 9, track_title: String::from("Hero of the Day"), track_artist: vec![String::from("Metallica")], @@ -895,6 +963,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 10, track_title: String::from("Devil’s Dance"), track_artist: vec![String::from("Metallica")], @@ -908,6 +977,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 11, track_title: String::from("Bleeding Me"), track_artist: vec![String::from("Metallica")], @@ -921,6 +991,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 12, track_title: String::from("Nothing Else Matters"), track_artist: vec![String::from("Metallica")], @@ -934,6 +1005,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 13, track_title: String::from("Until It Sleeps"), track_artist: vec![String::from("Metallica")], @@ -947,6 +1019,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 14, track_title: String::from("For Whom the Bell Tolls"), track_artist: vec![String::from("Metallica")], @@ -960,6 +1033,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 15, track_title: String::from("−Human"), track_artist: vec![String::from("Metallica")], @@ -973,6 +1047,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 16, track_title: String::from("Wherever I May Roam"), track_artist: vec![String::from("Metallica")], @@ -986,6 +1061,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 17, track_title: String::from("Outlaw Torn"), track_artist: vec![String::from("Metallica")], @@ -999,6 +1075,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 18, track_title: String::from("Sad but True"), track_artist: vec![String::from("Metallica")], @@ -1012,6 +1089,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 19, track_title: String::from("One"), track_artist: vec![String::from("Metallica")], @@ -1025,6 +1103,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 20, track_title: String::from("Enter Sandman"), track_artist: vec![String::from("Metallica")], @@ -1038,6 +1117,7 @@ pub static LIBRARY_ITEMS: Lazy> = Lazy::new(|| -> Vec { album_month: 0, album_day: 0, album_title: String::from("S&M"), + album_lib_id: AlbumLibId::Some(6), track_number: 21, track_title: String::from("Battery"), track_artist: vec![String::from("Metallica")],