Mercurial > hg
comparison rust/hg-core/src/vfs.rs @ 49485:ffd4b1f1c9cb
rhg: add sparse support
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Tue, 19 Jul 2022 15:37:45 +0200 |
parents | abeae090ce67 |
children | be019ac8c1e4 58074252db3c |
comparison
equal
deleted
inserted
replaced
49484:85f5d11c77dd | 49485:ffd4b1f1c9cb |
---|---|
36 &self, | 36 &self, |
37 relative_path: impl AsRef<Path>, | 37 relative_path: impl AsRef<Path>, |
38 ) -> Result<Vec<u8>, HgError> { | 38 ) -> Result<Vec<u8>, HgError> { |
39 let path = self.join(relative_path); | 39 let path = self.join(relative_path); |
40 std::fs::read(&path).when_reading_file(&path) | 40 std::fs::read(&path).when_reading_file(&path) |
41 } | |
42 | |
43 /// Returns `Ok(None)` if the file does not exist. | |
44 pub fn try_read( | |
45 &self, | |
46 relative_path: impl AsRef<Path>, | |
47 ) -> Result<Option<Vec<u8>>, HgError> { | |
48 match self.read(relative_path) { | |
49 Err(e) => match &e { | |
50 HgError::IoError { error, .. } => match error.kind() { | |
51 ErrorKind::NotFound => return Ok(None), | |
52 _ => Err(e), | |
53 }, | |
54 _ => Err(e), | |
55 }, | |
56 Ok(v) => Ok(Some(v)), | |
57 } | |
41 } | 58 } |
42 | 59 |
43 fn mmap_open_gen( | 60 fn mmap_open_gen( |
44 &self, | 61 &self, |
45 relative_path: impl AsRef<Path>, | 62 relative_path: impl AsRef<Path>, |