1use std::{fs::File, io, path::Path};
2
3pub mod fsimpl;
4
5#[cfg_attr(feature = "mock", mockall::automock)]
6pub trait FileSystem {
7 #[cfg_attr(feature = "mock", mockall::concretize)]
8 fn create_dir_all<P: AsRef<Path>>(&self, path: P) -> io::Result<()>;
9
10 #[cfg_attr(feature = "mock", mockall::concretize)]
11 fn create_file<P: AsRef<Path>>(&self, path: P) -> io::Result<File>;
12
13 #[cfg_attr(feature = "mock", mockall::concretize)]
14 fn open_file<P: AsRef<Path>>(&self, path: P) -> io::Result<File>;
15
16 #[cfg_attr(feature = "mock", mockall::concretize)]
17 fn remove_file<P: AsRef<Path>>(&self, path: P) -> io::Result<()>;
18}