Trash

Struct Trash 

Source
pub struct Trash {
    pub trash_folder_files: String,
    pub help: String,
    /* private fields */
}
Expand description

Represent a view of the trash. Its content is navigable so we use a Vector to hold the content. Only files that share the same mount point as the trash folder (generally ~/.local/share/Trash) can be moved to trash. Other files are unaffected.

Fields§

§trash_folder_files: String

The path to the trashed files

§help: String

Implementations§

Source§

impl Trash

Source

pub fn new(binds: &Bindings) -> Result<Self>

Creates an empty view of the trash. No file is read here, we wait for the user to open the trash first.

§Errors

This function uses std::fs::create_dir_all internally and may fail for the same reasons.

Source

pub fn update(&mut self) -> Result<()>

Parse the info files into a new instance. Only the file we can parse are read.

§Errors

This function may fail if the trash_folder_info can’t be parsed correctly. If any file is listed in trash_folder_info but doesn’t exist.

Source

pub fn trash(&mut self, origin: &Path) -> Result<()>

Move a file to the trash folder and create a new trash info file. Add a new TrashInfo to the content.

§Errors

This function may fail if the origin path is a relative path. We have no way to know where the file is exactly located.

It may also fail if the trash folder can’t be located, we wouldn’t be able to create a new path for the file.

Source

pub fn empty_trash(&mut self) -> Result<()>

Empty the trash, removing all the files and the trashinfo. This action requires a confirmation. Watchout, it may delete files that weren’t parsed.

§Errors

This method may fail if the trashfolder was moved or deleted or simply doesn’t exist. This method uses std::fs::remove_dir internally, which may fail.

See std::fs::remove_file and std::fs::remove_dir.

remove_dir_all will fail if remove_dir or remove_file fail on any constituent paths, including the root path.

Source

pub fn restore(&mut self) -> Result<()>

Restores a file from the trash to its previous directory. If the parent (or ancestor) folder were deleted, it is recreated.

§Errors

Will return an error if the file isn’t trashed properly :

  • missing .trashinfo
  • missing file itself

It may also fail if the file can’t be restored : For example, if the original path of the file is now in a directory where the user has no permission to write.

Source

pub fn delete_permanently(&mut self) -> Result<()>

Deletes a file permanently from the trash.

§Errors

Will return an error if the selected file isn’t trashed properly:

  • missing .trashinfo
  • missing file itself.

Trait Implementations§

Source§

impl Clone for Trash

Source§

fn clone(&self) -> Trash

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Selectable for Trash

Implement a selectable content for this struct. This trait allows to navigate through a vector of element content_type. It implements: is_empty, len, next, prev, set_index and selected_is_last.

Source§

fn is_empty(&self) -> bool

True if the content is empty.

Source§

fn len(&self) -> usize

The size of the content.

Source§

fn prev(&mut self)

Select the prev item.

Source§

fn next(&mut self)

Select the next item.

Source§

fn index(&self) -> usize

Returns the index of the selected item.

Source§

fn set_index(&mut self, index: usize)

Set the index to a new value if the value is below the length.

Source§

fn selected_is_last(&self) -> bool

true if the selected element is the last of content

Auto Trait Implementations§

§

impl Freeze for Trash

§

impl RefUnwindSafe for Trash

§

impl Send for Trash

§

impl Sync for Trash

§

impl Unpin for Trash

§

impl UnwindSafe for Trash

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> MaybeSend for T
where T: Send,