Skip to main content

file_storage/system/local/file/
delete.rs

1use crate::system::LocalPath;
2use crate::Error;
3use crate::Operation::Delete;
4use std::io::ErrorKind::NotFound;
5
6impl<'a> LocalPath<'a> {
7    //! Delete
8
9    /// See `FilePath::delete_if_exists`.
10    pub fn delete_if_exists(&self) -> Result<bool, Error> {
11        match std::fs::remove_file(self.path.as_str()) {
12            Ok(()) => Ok(true),
13            Err(error) => {
14                if error.kind() == NotFound {
15                    Ok(false)
16                } else {
17                    Err(Error::from_source(self.path.clone(), Delete, error))
18                }
19            }
20        }
21    }
22}