mirror of
https://codeberg.org/unspeaker/perch.git
synced 2025-12-06 09:36:42 +01:00
emit tasks for columns
This commit is contained in:
parent
e16e8131aa
commit
59c2fdcbcd
6 changed files with 79 additions and 55 deletions
|
|
@ -1,11 +1,15 @@
|
|||
use crate::*;
|
||||
use std::cmp::{Eq, PartialEq, Ord, PartialOrd, Ordering};
|
||||
use lofty::tag::TagItem;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct Entry {
|
||||
pub path: PathBuf,
|
||||
/// How many levels deep is this from the working directory
|
||||
pub depth: usize,
|
||||
pub info: Arc<RwLock<Metadata>>,
|
||||
/// Full path to this entry
|
||||
pub path: Arc<PathBuf>,
|
||||
/// Type-specific metadata
|
||||
pub info: Arc<RwLock<Metadata>>,
|
||||
}
|
||||
|
||||
impl Entry {
|
||||
|
|
@ -22,7 +26,7 @@ impl Entry {
|
|||
fn new_dir (_: &impl AsRef<Path>, path: &Path, depth: usize) -> Perhaps<Self> {
|
||||
Ok(Some(Self {
|
||||
depth,
|
||||
path: path.into(),
|
||||
path: path.to_path_buf().into(),
|
||||
info: Arc::new(RwLock::new(Metadata::Directory {
|
||||
hash_file: None,
|
||||
catalog_file: None,
|
||||
|
|
@ -34,8 +38,8 @@ impl Entry {
|
|||
fn new_file (_: &impl AsRef<Path>, path: &Path, depth: usize) -> Perhaps<Self> {
|
||||
Ok(Some(Self {
|
||||
depth,
|
||||
path: path.to_path_buf().into(),
|
||||
info: Arc::new(RwLock::new(Metadata::new(path)?)),
|
||||
path: path.into(),
|
||||
}))
|
||||
}
|
||||
pub fn is_directory (&self) -> bool {
|
||||
|
|
@ -68,19 +72,19 @@ impl Entry {
|
|||
pub fn track (&self) -> Option<Arc<str>> {
|
||||
self.info.read().unwrap().track()
|
||||
}
|
||||
pub fn set_artist (&self, value: &impl AsRef<str>) -> Option<Task> {
|
||||
pub fn set_artist (&self, value: &impl AsRef<str>) -> Option<TagItem> {
|
||||
self.info.write().unwrap().set_artist(value)
|
||||
}
|
||||
pub fn set_year (&self, value: &impl AsRef<str>) -> Option<Task> {
|
||||
pub fn set_year (&self, value: &impl AsRef<str>) -> Option<TagItem> {
|
||||
self.info.write().unwrap().set_year(value)
|
||||
}
|
||||
pub fn set_album (&self, value: &impl AsRef<str>) -> Option<Task> {
|
||||
pub fn set_album (&self, value: &impl AsRef<str>) -> Option<TagItem> {
|
||||
self.info.write().unwrap().set_album(value)
|
||||
}
|
||||
pub fn set_title (&self, value: &impl AsRef<str>) -> Option<Task> {
|
||||
pub fn set_title (&self, value: &impl AsRef<str>) -> Option<TagItem> {
|
||||
self.info.write().unwrap().set_title(value)
|
||||
}
|
||||
pub fn set_track (&self, value: &impl AsRef<str>) -> Option<Task> {
|
||||
pub fn set_track (&self, value: &impl AsRef<str>) -> Option<TagItem> {
|
||||
self.info.write().unwrap().set_track(value)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue