impl DashboardTile for Songdata

This commit is contained in:
Ethan Girouard 2024-10-06 15:37:26 -04:00
parent f02a22d805
commit 097b1fc491
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146

View File

@ -1,6 +1,5 @@
use crate::models::{Album, Artist, Song}; use crate::models::{Album, Artist, Song};
use crate::components::dashboard_tile::DashboardTile; use crate::components::dashboard_tile::DashboardTile;
use crate::media_type::MediaType;
use time::Date; use time::Date;
@ -63,13 +62,20 @@ impl TryInto<Song> for SongData {
} }
} }
impl Into<DashboardTile> for SongData { impl DashboardTile for SongData {
fn into(self) -> DashboardTile { fn image_path(&self) -> String {
DashboardTile { self.image_path.clone()
image_path: self.image_path,
title: self.title,
media_type: Some(MediaType::Song),
artist: Some(Artist::display_list(&self.artists)),
} }
fn title(&self) -> String {
self.title.clone()
}
fn link(&self) -> String {
format!("/song/{}", self.id)
}
fn description(&self) -> Option<String> {
Some(format!("Song • {}", Artist::display_list(&self.artists)))
} }
} }