Add variant of Ref::update_ref() to update with custom Hasher instance
This commit is contained in:
parent
a6ca041903
commit
5399b8ca7b
1 changed files with 7 additions and 3 deletions
|
@ -353,6 +353,12 @@ impl<'a> Ref<'a> {
|
||||||
/// Update the Ref by re-checking the file from FS
|
/// Update the Ref by re-checking the file from FS
|
||||||
/// This errors if the file is not present or cannot be read()
|
/// This errors if the file is not present or cannot be read()
|
||||||
pub fn update_ref(&mut self) -> Result<()> {
|
pub fn update_ref(&mut self) -> Result<()> {
|
||||||
|
self.update_ref_with_hasher(&DefaultHasher::new())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Update the Ref by re-checking the file from FS using the passed Hasher instance
|
||||||
|
/// This errors if the file is not present or cannot be read()
|
||||||
|
pub fn update_ref_with_hasher<H: Hasher>(&mut self, h: &H) -> Result<()> {
|
||||||
let current_hash = try!(self.get_current_hash()); // uses the default hasher
|
let current_hash = try!(self.get_current_hash()); // uses the default hasher
|
||||||
let current_perm = try!(self.get_current_permissions());
|
let current_perm = try!(self.get_current_permissions());
|
||||||
|
|
||||||
|
@ -363,11 +369,9 @@ impl<'a> Ref<'a> {
|
||||||
.map_err(|e| REK::StoreWriteError.into_error_with_cause(e))
|
.map_err(|e| REK::StoreWriteError.into_error_with_cause(e))
|
||||||
);
|
);
|
||||||
|
|
||||||
let hasher_name = DefaultHasher::new().hash_name();
|
|
||||||
|
|
||||||
try!(self.0
|
try!(self.0
|
||||||
.get_header_mut()
|
.get_header_mut()
|
||||||
.set(&format!("ref.content_hash.{}", hasher_name)[..], Value::String(current_hash))
|
.set(&format!("ref.content_hash.{}", h.hash_name())[..], Value::String(current_hash))
|
||||||
.map_err(Box::new)
|
.map_err(Box::new)
|
||||||
.map_err(|e| REK::StoreWriteError.into_error_with_cause(e))
|
.map_err(|e| REK::StoreWriteError.into_error_with_cause(e))
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in a new issue