Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -242,3 +242,16 @@ where

platform::discard_all(&targets)
}

pub fn restore(item: TrashItem) -> Result<()> {
platform::restore(item)
}

pub fn restore_all<I>(items: I) -> Result<()>
where
I: IntoIterator<Item = TrashItem>,
{
let items = items.into_iter().collect::<Vec<_>>();

platform::restore_all(items)
}
6 changes: 3 additions & 3 deletions src/platform.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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};
8 changes: 8 additions & 0 deletions src/platform/linux.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result<Vec<TrashItem>> {
.collect()
}

pub(crate) fn restore(_item: TrashItem) -> Result<()> {
unimplemented!()
}

pub(crate) fn restore_all(_items: Vec<TrashItem>) -> Result<()> {
unimplemented!()
}

fn discard_inner(location: &TrashLocation, target: &DiscardTarget) -> Result<TrashItem> {
let path = &target.path;
permission::ensure_discard_permission(path)?;
Expand Down
8 changes: 8 additions & 0 deletions src/platform/macos.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result<Vec<TrashItem>> {
.collect()
}

pub(crate) fn restore(_item: TrashItem) -> Result<()> {
unimplemented!()
}

pub(crate) fn restore_all(_items: Vec<TrashItem>) -> Result<()> {
unimplemented!()
}

fn discard_inner(file_manager: &NSFileManager, target: &DiscardTarget) -> Result<TrashItem> {
let path = &target.path;
let path_cstring = CString::new(path.as_os_str().as_bytes()).map_err(|source| Error::Io {
Expand Down
8 changes: 8 additions & 0 deletions src/platform/windows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@ pub(crate) fn discard_all(targets: &[DiscardTarget]) -> Result<Vec<TrashItem>> {
})
}

pub(crate) fn restore(_item: TrashItem) -> Result<()> {
unimplemented!()
}

pub(crate) fn restore_all(_items: Vec<TrashItem>) -> Result<()> {
unimplemented!()
}

fn discard_inner(shell_context: &ShellContext, target: &DiscardTarget) -> Result<TrashItem> {
let path = &target.path;
let shell_item = shell_context.item_from_path(path)?;
Expand Down
Loading