summaryrefslogtreecommitdiffstats
path: root/libimagref
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2016-06-30 10:57:10 +0200
committerMatthias Beyer <mail@beyermatthias.de>2016-07-04 19:29:02 +0200
commitebf185fd29b822715fe1e05a29de72adc239463f (patch)
tree0dde7f382efdb167dff73ce4491ef06d5d9735cf /libimagref
parent617cb97ddfab49229e67238c3c7da3cf79b3dc9a (diff)
Add Ref::from_filelockentry()
Diffstat (limited to 'libimagref')
-rw-r--r--libimagref/src/reference.rs7
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),
}
}