use tokio::sync::mpsc; use yazi_shared::Id; use crate::TaskOut; #[derive(Debug)] pub(crate) struct TaskOp { pub(crate) id: Id, pub(crate) out: TaskOut, } // --- Ops #[derive(Clone)] pub struct TaskOps(pub(super) mpsc::UnboundedSender); impl From<&mpsc::UnboundedSender> for TaskOps { fn from(tx: &mpsc::UnboundedSender) -> Self { Self(tx.clone()) } } impl TaskOps { #[inline] pub(crate) fn out(&self, id: Id, out: impl Into) { _ = self.0.send(TaskOp { id, out: out.into() }); } }