diff options
author | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-07-26 21:42:15 +0200 |
---|---|---|
committer | Nathan Reiner <nathan@nathanreiner.xyz> | 2023-07-26 21:42:15 +0200 |
commit | b1645aa2047cbfed040a40e8f4ed2a92765dc287 (patch) | |
tree | 30754cb8f8eeb11506fad37a5b5f77f17c9e8f07 | |
parent | 61ac9375b4a35878576ac2727c5210cd9fc51a92 (diff) |
Index::from_file use deserialize_from to save memory
-rw-r--r-- | src/index.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/index.rs b/src/index.rs index be23e0e..5d2abb6 100644 --- a/src/index.rs +++ b/src/index.rs @@ -1,7 +1,7 @@ use std::collections::HashMap; use std::hash::Hash; use std::fs::File; -use std::io::BufWriter; +use std::io::{BufWriter, BufReader}; use std::thread; use walkdir::*; use hash32::Hasher; @@ -106,8 +106,9 @@ impl Index { } pub fn from_file(path : &String) -> Self { - let bytes = std::fs::read(path).expect("could not read index file"); - let filecache : Vec<FileCache> = bincode::deserialize(&bytes).unwrap(); + let file = File::open(path).expect("could not read index file"); + let reader = BufReader::new(file); + let filecache : Vec<FileCache> = bincode::deserialize_from(reader).unwrap(); Self { filecache |