use std::path::Path;
use lunar_lib::database::{DatabaseEntry, DatabaseError};
use crate::library::track::Track;
impl Track {
pub fn db_find_by_title(name: impl AsRef<str>) -> Result<Vec<Self>, DatabaseError> {
let name = name.as_ref();
let mut tracks = Self::db_get_all()?;
tracks.retain(|t| t.metadata.title.as_deref() == Some(name));
Ok(tracks)
}
pub fn db_find_by_path(path: impl AsRef<Path>) -> Result<Option<Self>, DatabaseError> {
let path = path.as_ref();
let tracks = Self::db_get_all()?;
let track = tracks.into_iter().find(|t| t.container.path() == path);
Ok(track)
}
}