Impl Display for Ref
This commit is contained in:
parent
ebf185fd29
commit
a29242c586
1 changed files with 17 additions and 1 deletions
|
@ -6,8 +6,10 @@ use std::ops::Deref;
|
||||||
use std::ops::DerefMut;
|
use std::ops::DerefMut;
|
||||||
use std::collections::BTreeMap;
|
use std::collections::BTreeMap;
|
||||||
use std::fs::File;
|
use std::fs::File;
|
||||||
use std::io::Read;
|
use std::io::{Read, Write};
|
||||||
|
use std::fmt::{Display, Error as FmtError, Formatter};
|
||||||
use std::fs::Permissions;
|
use std::fs::Permissions;
|
||||||
|
use std::result::Result as RResult;
|
||||||
|
|
||||||
use libimagstore::store::FileLockEntry;
|
use libimagstore::store::FileLockEntry;
|
||||||
use libimagstore::storeid::StoreId;
|
use libimagstore::storeid::StoreId;
|
||||||
|
@ -495,6 +497,20 @@ impl<'a> DerefMut for Ref<'a> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl<'a> Display for Ref<'a> {
|
||||||
|
|
||||||
|
fn fmt(&self, fmt: &mut Formatter) -> RResult<(), FmtError> {
|
||||||
|
let path = self.fs_file()
|
||||||
|
.map(|pb| String::from(pb.to_str().unwrap_or("<UTF8-Error>")))
|
||||||
|
.unwrap_or(String::from("Could not read Path from reference object"));
|
||||||
|
|
||||||
|
let hash = self.get_stored_hash().unwrap_or(String::from("<could not read hash>"));
|
||||||
|
|
||||||
|
write!(fmt, "Ref({} -> {})", hash, path)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fn hash_file_contents(f: &mut File) -> String {
|
fn hash_file_contents(f: &mut File) -> String {
|
||||||
let mut hasher = Sha1::new();
|
let mut hasher = Sha1::new();
|
||||||
let mut s = String::new();
|
let mut s = String::new();
|
||||||
|
|
Loading…
Reference in a new issue