(&self, path: &Path)
| 52 | } |
| 53 | |
| 54 | fn read_dir(&self, path: &Path) -> virtual_fs::Result<ReadDir> { |
| 55 | let path = self.prepare_path(path)?; |
| 56 | let mut data = fs::read_dir(path)? |
| 57 | .map(|entry| { |
| 58 | let entry = entry?; |
| 59 | let path = entry |
| 60 | .path() |
| 61 | .strip_prefix(&self.root) |
| 62 | .map_err(|_| io::Error::from(io::ErrorKind::InvalidData))? |
| 63 | .to_owned(); |
| 64 | let path = Path::new("/").join(path); |
| 65 | Ok(DirEntry { |
| 66 | path, |
| 67 | metadata: entry |
| 68 | .metadata() |
| 69 | .map(metadata_from_std) |
| 70 | .map_err(FsError::from), |
| 71 | }) |
| 72 | }) |
| 73 | .collect::<std::result::Result<Vec<_>, io::Error>>()?; |
| 74 | data.sort_by(|a, b| a.path.file_name().cmp(&b.path.file_name())); |
| 75 | Ok(ReadDir::new(data)) |
| 76 | } |
| 77 | |
| 78 | fn create_dir(&self, path: &Path) -> virtual_fs::Result<()> { |
| 79 | let path = self.prepare_path(path)?; |
no test coverage detected