start defining update tasks

This commit is contained in:
🪞👃🪞 2025-03-24 00:14:31 +02:00
parent a38d103d7d
commit b2ed389edd
2 changed files with 24 additions and 0 deletions

View file

@ -3,7 +3,9 @@ use crate::*;
mod column; pub use self::column::*; mod column; pub use self::column::*;
mod entry; pub use self::entry::*; mod entry; pub use self::entry::*;
mod metadata; pub use self::metadata::*; mod metadata; pub use self::metadata::*;
mod task; pub use self::task::*;
/// The application state.
pub struct Taggart { pub struct Taggart {
pub _root: PathBuf, pub _root: PathBuf,
pub entries: Vec<Entry>, pub entries: Vec<Entry>,
@ -13,6 +15,7 @@ pub struct Taggart {
pub columns: Columns<Entry, fn(&Entry)->Option<Arc<str>>, fn(&mut [Entry], usize, &str)>, pub columns: Columns<Entry, fn(&Entry)->Option<Arc<str>>, fn(&mut [Entry], usize, &str)>,
pub display: Measure<TuiOut>, pub display: Measure<TuiOut>,
pub editing: Option<(usize, String)>, pub editing: Option<(usize, String)>,
pub tasks: Vec<Task>,
} }
impl Taggart { impl Taggart {
@ -25,6 +28,7 @@ impl Taggart {
display: Measure::new(), display: Measure::new(),
editing: None, editing: None,
columns: Columns::default(), columns: Columns::default(),
tasks: vec![],
entries, entries,
}) })
} }

20
src/model/task.rs Normal file
View file

@ -0,0 +1,20 @@
use crate::*;
use lofty::tag::TagItem;
/// An update to a file's metadata to be performed.
pub struct Task {
pub path: PathBuf,
pub item: TagItem
}
impl Task {
fn new (path: &impl AsRef<Path>, item: TagItem) -> Self {
Self {
path: path.as_ref().into(),
item
}
}
fn apply (&self) -> Usually<()> {
todo!("apply {:?} to {:?}", self.item, self.path)
}
}