Better file hasing
This commit is contained in:
parent
1464cd26c8
commit
e275877d73
1 changed files with 2 additions and 9 deletions
|
@ -1,5 +1,5 @@
|
||||||
use std::fs;
|
|
||||||
use std::path::Path;
|
use std::path::Path;
|
||||||
|
use std::{fs, io};
|
||||||
|
|
||||||
use crate::error::BakareError;
|
use crate::error::BakareError;
|
||||||
use crate::index::{Index, IndexIterator};
|
use crate::index::{Index, IndexIterator};
|
||||||
|
@ -89,16 +89,9 @@ impl<'a> Repository<'a> {
|
||||||
fn calculate_initial_version(source_path: &Path) -> Result<Box<[u8]>, BakareError> {
|
fn calculate_initial_version(source_path: &Path) -> Result<Box<[u8]>, BakareError> {
|
||||||
let source_file = File::open(source_path)?;
|
let source_file = File::open(source_path)?;
|
||||||
let mut reader = BufReader::new(source_file);
|
let mut reader = BufReader::new(source_file);
|
||||||
let mut buffer = Vec::with_capacity(1024);
|
|
||||||
let mut hasher = Sha512::new();
|
let mut hasher = Sha512::new();
|
||||||
|
|
||||||
loop {
|
io::copy(&mut reader, &mut hasher)?;
|
||||||
let count = reader.read(&mut buffer)?;
|
|
||||||
if count == 0 {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
hasher.input(&buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
let version = hasher.result();
|
let version = hasher.result();
|
||||||
Ok(Box::from(version.as_slice()))
|
Ok(Box::from(version.as_slice()))
|
||||||
|
|
Loading…
Reference in a new issue