diff --git a/yazi-scheduler/src/file/op.rs b/yazi-scheduler/src/file/op.rs index 4403a20e..cb80abfe 100644 --- a/yazi-scheduler/src/file/op.rs +++ b/yazi-scheduler/src/file/op.rs @@ -10,6 +10,17 @@ pub enum FileOp { Trash(FileOpTrash), } +impl FileOp { + pub fn id(&self) -> usize { + match self { + Self::Paste(op) => op.id, + Self::Link(op) => op.id, + Self::Delete(op) => op.id, + Self::Trash(op) => op.id, + } + } +} + #[derive(Clone, Debug)] pub struct FileOpPaste { pub id: usize, diff --git a/yazi-scheduler/src/lib.rs b/yazi-scheduler/src/lib.rs index fdc642ef..b94b2087 100644 --- a/yazi-scheduler/src/lib.rs +++ b/yazi-scheduler/src/lib.rs @@ -2,6 +2,7 @@ mod blocker; mod file; +mod op; mod plugin; mod preload; mod process; @@ -10,6 +11,7 @@ mod scheduler; mod task; pub use blocker::*; +pub use op::*; pub use running::*; pub use scheduler::*; pub use task::*; diff --git a/yazi-scheduler/src/op.rs b/yazi-scheduler/src/op.rs new file mode 100644 index 00000000..147bb2eb --- /dev/null +++ b/yazi-scheduler/src/op.rs @@ -0,0 +1,18 @@ +#[derive(Debug)] +pub enum TaskOp { + File(Box), + Plugin(Box), + Preload(Box), + Process(Box), +} + +impl TaskOp { + pub fn id(&self) -> usize { + match self { + TaskOp::File(op) => op.id(), + TaskOp::Plugin(op) => op.id(), + TaskOp::Preload(op) => op.id(), + TaskOp::Process(op) => op.id(), + } + } +} diff --git a/yazi-scheduler/src/plugin/op.rs b/yazi-scheduler/src/plugin/op.rs index abe506e0..729021d9 100644 --- a/yazi-scheduler/src/plugin/op.rs +++ b/yazi-scheduler/src/plugin/op.rs @@ -3,6 +3,14 @@ pub enum PluginOp { Entry(PluginOpEntry), } +impl PluginOp { + pub fn id(&self) -> usize { + match self { + Self::Entry(op) => op.id, + } + } +} + #[derive(Clone, Debug)] pub struct PluginOpEntry { pub id: usize, diff --git a/yazi-scheduler/src/preload/op.rs b/yazi-scheduler/src/preload/op.rs index 4ef7492a..c0f0b89a 100644 --- a/yazi-scheduler/src/preload/op.rs +++ b/yazi-scheduler/src/preload/op.rs @@ -8,6 +8,15 @@ pub enum PreloadOp { Size(PreloadOpSize), } +impl PreloadOp { + pub fn id(&self) -> usize { + match self { + Self::Rule(op) => op.id, + Self::Size(op) => op.id, + } + } +} + #[derive(Clone, Debug)] pub struct PreloadOpRule { pub id: usize, diff --git a/yazi-scheduler/src/preload/preload.rs b/yazi-scheduler/src/preload/preload.rs index f19723b5..dfbd5090 100644 --- a/yazi-scheduler/src/preload/preload.rs +++ b/yazi-scheduler/src/preload/preload.rs @@ -1,10 +1,10 @@ -use std::{collections::{BTreeMap, BTreeSet, HashMap}, sync::Arc}; +use std::collections::{BTreeMap, BTreeSet, HashMap}; use anyhow::Result; use parking_lot::RwLock; use tokio::sync::mpsc; use tracing::error; -use yazi_shared::{fs::{calculate_size, FilesOp, Url}, Throttle}; +use yazi_shared::fs::{calculate_size, FilesOp, Url}; use super::{PreloadOpRule, PreloadOpSize}; use crate::TaskProg; diff --git a/yazi-scheduler/src/process/op.rs b/yazi-scheduler/src/process/op.rs index ee0ea090..a9b31c03 100644 --- a/yazi-scheduler/src/process/op.rs +++ b/yazi-scheduler/src/process/op.rs @@ -8,6 +8,14 @@ pub enum ProcessOp { Open(ProcessOpOpen), } +impl ProcessOp { + pub fn id(&self) -> usize { + match self { + Self::Open(op) => op.id, + } + } +} + #[derive(Debug)] pub struct ProcessOpOpen { pub id: usize, diff --git a/yazi-scheduler/src/task.rs b/yazi-scheduler/src/task.rs index 8138c699..27baceea 100644 --- a/yazi-scheduler/src/task.rs +++ b/yazi-scheduler/src/task.rs @@ -58,25 +58,6 @@ impl From<&Task> for TaskSummary { } } -#[derive(Debug)] -pub enum TaskOp { - File(Box), - Plugin(Box), - Preload(Box), - Process(Box), -} - -impl TaskOp { - pub fn id(&self) { - match self { - TaskOp::File(op) => todo!(), - TaskOp::Plugin(op) => todo!(), - TaskOp::Preload(_) => todo!(), - TaskOp::Process(_) => todo!(), - } - } -} - #[derive(Debug)] pub enum TaskProg { // id, size