file_storage/op/file/write/
write.rs1use crate::system::LocalPath;
2use crate::Operation::Write;
3use crate::Reason::{FileAlreadyExists, UnknownFileSystem};
4use crate::{Error, FilePath, FileWrite};
5
6impl FilePath {
7 pub fn write(&self) -> Result<FileWrite, Error> {
14 if let Some(write) = self.write_if_not_exists()? {
15 Ok(write)
16 } else {
17 Err(Error::new(self.path().clone(), Write, FileAlreadyExists))
18 }
19 }
20
21 pub fn write_if_not_exists(&self) -> Result<Option<FileWrite>, Error> {
26 if let Some(local) = LocalPath::from(self.path()) {
27 return local.write_if_not_exists();
28 }
29
30 Err(Error::new(self.path().clone(), Write, UnknownFileSystem))
31 }
32}