Mountain/Environment/
FileSystemProvider.rs1use std::path::PathBuf;
42
43use CommonLibrary::{
44 Error::CommonError::CommonError,
45 FileSystem::{
46 DTO::{FileSystemStatDTO::FileSystemStatDTO, FileTypeDTO::FileTypeDTO},
47 FileSystemReader::FileSystemReader,
48 FileSystemWriter::FileSystemWriter,
49 },
50};
51use async_trait::async_trait;
52
53use super::MountainEnvironment::MountainEnvironment;
54
55#[path = "FileSystemProvider/ReadOperations.rs"]
57mod ReadOperations;
58
59#[path = "FileSystemProvider/WriteOperations.rs"]
60mod WriteOperations;
61
62#[async_trait]
63impl FileSystemReader for MountainEnvironment {
64 async fn ReadFile(&self, path:&PathBuf) -> Result<Vec<u8>, CommonError> {
66 ReadOperations::read_file_impl(self, path).await
67 }
68
69 async fn StatFile(&self, path:&PathBuf) -> Result<FileSystemStatDTO, CommonError> {
71 ReadOperations::stat_file_impl(self, path).await
72 }
73
74 async fn ReadDirectory(&self, path:&PathBuf) -> Result<Vec<(String, FileTypeDTO)>, CommonError> {
76 ReadOperations::read_directory_impl(self, path).await
77 }
78}
79
80#[async_trait]
81impl FileSystemWriter for MountainEnvironment {
82 async fn WriteFile(&self, path:&PathBuf, content:Vec<u8>, create:bool, overwrite:bool) -> Result<(), CommonError> {
84 WriteOperations::write_file_impl(self, path, content, create, overwrite).await
85 }
86
87 async fn CreateDirectory(&self, path:&PathBuf, recursive:bool) -> Result<(), CommonError> {
89 WriteOperations::create_directory_impl(self, path, recursive).await
90 }
91
92 async fn Delete(&self, path:&PathBuf, recursive:bool, use_trash:bool) -> Result<(), CommonError> {
94 WriteOperations::delete_impl(self, path, recursive, use_trash).await
95 }
96
97 async fn Rename(&self, source:&PathBuf, target:&PathBuf, overwrite:bool) -> Result<(), CommonError> {
99 WriteOperations::rename_impl(self, source, target, overwrite).await
100 }
101
102 async fn Copy(&self, source:&PathBuf, target:&PathBuf, overwrite:bool) -> Result<(), CommonError> {
104 WriteOperations::copy_impl(self, source, target, overwrite).await
105 }
106
107 async fn CreateFile(&self, path:&PathBuf) -> Result<(), CommonError> {
109 WriteOperations::create_file_impl(self, path).await
110 }
111}