From d3ce1648a9e903628463d7b1306bef88b6fd46da Mon Sep 17 00:00:00 2001 From: Mayank Verma Date: Wed, 8 Jul 2026 19:38:04 +0530 Subject: [PATCH] Initial --- src/lib.rs | 13 +++++++++++++ src/platform.rs | 6 +++--- src/platform/linux.rs | 8 ++++++++ src/platform/macos.rs | 8 ++++++++ src/platform/windows.rs | 8 ++++++++ 5 files changed, 40 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 1fe4a2f..0714182 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -242,3 +242,16 @@ where platform::discard_all(&targets) } + +pub fn restore(item: TrashItem) -> Result<()> { + platform::restore(item) +} + +pub fn restore_all(items: I) -> Result<()> +where + I: IntoIterator, +{ + let items = items.into_iter().collect::>(); + + platform::restore_all(items) +} diff --git a/src/platform.rs b/src/platform.rs index 1e146fa..1719f4b 100644 --- a/src/platform.rs +++ b/src/platform.rs @@ -6,8 +6,8 @@ mod macos; mod windows; #[cfg(target_os = "linux")] -pub(crate) use linux::{discard, discard_all}; +pub(crate) use linux::{discard, discard_all, restore, restore_all}; #[cfg(target_os = "macos")] -pub(crate) use macos::{discard, discard_all}; +pub(crate) use macos::{discard, discard_all, restore, restore_all}; #[cfg(target_os = "windows")] -pub(crate) use windows::{discard, discard_all}; +pub(crate) use windows::{discard, discard_all, restore, restore_all}; diff --git a/src/platform/linux.rs b/src/platform/linux.rs index b2db11e..dc02a8a 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -30,6 +30,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result> { .collect() } +pub(crate) fn restore(_item: TrashItem) -> Result<()> { + unimplemented!() +} + +pub(crate) fn restore_all(_items: Vec) -> Result<()> { + unimplemented!() +} + fn discard_inner(location: &TrashLocation, target: &DiscardTarget) -> Result { let path = &target.path; permission::ensure_discard_permission(path)?; diff --git a/src/platform/macos.rs b/src/platform/macos.rs index 49e5253..ccdb752 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -24,6 +24,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result> { .collect() } +pub(crate) fn restore(_item: TrashItem) -> Result<()> { + unimplemented!() +} + +pub(crate) fn restore_all(_items: Vec) -> Result<()> { + unimplemented!() +} + fn discard_inner(file_manager: &NSFileManager, target: &DiscardTarget) -> Result { let path = &target.path; let path_cstring = CString::new(path.as_os_str().as_bytes()).map_err(|source| Error::Io { diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 503219e..ea442c4 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -24,6 +24,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result> { }) } +pub(crate) fn restore(_item: TrashItem) -> Result<()> { + unimplemented!() +} + +pub(crate) fn restore_all(_items: Vec) -> Result<()> { + unimplemented!() +} + fn discard_inner(shell_context: &ShellContext, target: &DiscardTarget) -> Result { let path = &target.path; let shell_item = shell_context.item_from_path(path)?;