diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2016-06-30 10:57:10 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2016-07-04 19:29:02 +0200 |
commit | ebf185fd29b822715fe1e05a29de72adc239463f (patch) | |
tree | 0dde7f382efdb167dff73ce4491ef06d5d9735cf /libimagref | |
parent | 617cb97ddfab49229e67238c3c7da3cf79b3dc9a (diff) |
Add Ref::from_filelockentry()
Diffstat (limited to 'libimagref')
-rw-r--r-- | libimagref/src/reference.rs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libimagref/src/reference.rs b/libimagref/src/reference.rs index 8bdbbb6f..5c83e35c 100644 --- a/libimagref/src/reference.rs +++ b/libimagref/src/reference.rs @@ -29,12 +29,17 @@ pub struct Ref<'a>(FileLockEntry<'a>); impl<'a> Ref<'a> { + /// Try to build a Ref object based on an existing FileLockEntry object + pub fn from_filelockentry(fle: FileLockEntry<'a>) -> Result<Ref<'a>> { + Ref::read_reference(&fle).map(|_| Ref(fle)) + } + /// Try to get `si` as Ref object from the store pub fn get(store: &'a Store, si: StoreId) -> Result<Ref<'a>> { match store.get(si) { Err(e) => return Err(REK::StoreReadError.into_error_with_cause(Box::new(e))), Ok(None) => return Err(REK::RefNotInStore.into_error()), - Ok(Some(fle)) => Ref::read_reference(&fle).map(|_| Ref(fle)), + Ok(Some(fle)) => Ref::from_filelockentry(fle), } } |