rust: replace read_whole_file with std::fs::read
authorSimon Sapin <simon.sapin@octobus.net>
Mon, 01 Feb 2021 12:25:53 +0100
changeset 46481 0d734c0ae1cf
parent 46480 05dd091dfa6a
child 46482 39128182f04e
rust: replace read_whole_file with std::fs::read It does the same thing Differential Revision: https://phab.mercurial-scm.org/D9959
rust/hg-core/src/config/config.rs
rust/hg-core/src/config/layer.rs
rust/hg-core/src/utils/files.rs
--- a/rust/hg-core/src/config/config.rs	Tue Feb 09 09:37:39 2021 -0800
+++ b/rust/hg-core/src/config/config.rs	Mon Feb 01 12:25:53 2021 +0100
@@ -14,7 +14,6 @@
 use std::path::PathBuf;
 
 use crate::repo::Repo;
-use crate::utils::files::read_whole_file;
 
 /// Holds the config values for the current repository
 /// TODO update this docstring once we support more sources
@@ -64,7 +63,7 @@
                 ConfigSource::AbsPath(c) => {
                     // TODO check if it should be trusted
                     // mercurial/ui.py:427
-                    let data = match read_whole_file(&c) {
+                    let data = match std::fs::read(&c) {
                         Err(_) => continue, // same as the python code
                         Ok(data) => data,
                     };
--- a/rust/hg-core/src/config/layer.rs	Tue Feb 09 09:37:39 2021 -0800
+++ b/rust/hg-core/src/config/layer.rs	Mon Feb 01 12:25:53 2021 +0100
@@ -8,9 +8,7 @@
 // GNU General Public License version 2 or any later version.
 
 use crate::errors::{HgError, IoResultExt};
-use crate::utils::files::{
-    get_bytes_from_path, get_path_from_bytes, read_whole_file,
-};
+use crate::utils::files::{get_bytes_from_path, get_path_from_bytes};
 use format_bytes::format_bytes;
 use lazy_static::lazy_static;
 use regex::bytes::Regex;
@@ -244,10 +242,10 @@
     new_src: &Path,
 ) -> (PathBuf, io::Result<Vec<u8>>) {
     if new_src.is_absolute() {
-        (new_src.to_path_buf(), read_whole_file(&new_src))
+        (new_src.to_path_buf(), std::fs::read(&new_src))
     } else {
         let dir = old_src.parent().unwrap();
         let new_src = dir.join(&new_src);
-        (new_src.to_owned(), read_whole_file(&new_src))
+        (new_src.to_owned(), std::fs::read(&new_src))
     }
 }
--- a/rust/hg-core/src/utils/files.rs	Tue Feb 09 09:37:39 2021 -0800
+++ b/rust/hg-core/src/utils/files.rs	Mon Feb 01 12:25:53 2021 +0100
@@ -18,7 +18,6 @@
 use same_file::is_same_file;
 use std::borrow::{Cow, ToOwned};
 use std::fs::Metadata;
-use std::io::Read;
 use std::iter::FusedIterator;
 use std::ops::Deref;
 use std::path::{Path, PathBuf};
@@ -309,17 +308,6 @@
     }
 }
 
-/// Reads a file in one big chunk instead of doing multiple reads
-pub fn read_whole_file(filepath: &Path) -> std::io::Result<Vec<u8>> {
-    let mut file = std::fs::File::open(filepath)?;
-    let size = file.metadata()?.len();
-
-    let mut res = vec![0; size as usize];
-    file.read_exact(&mut res)?;
-
-    Ok(res)
-}
-
 #[cfg(test)]
 mod tests {
     use super::*;