diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2018-01-12 16:32:18 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2018-01-13 01:14:03 +0100 |
commit | e9ae81a2ce99a86035f68ec8c4ef335a3a4221aa (patch) | |
tree | e5f9e7940f876469d39addf1417247f6cdd2d49a /lib | |
parent | 18a6e9b64e454047f87930fb558ddaa23e3f6e29 (diff) |
libimagentrylink: Replace read with typed read
Diffstat (limited to 'lib')
-rw-r--r-- | lib/entry/libimagentrylink/src/external.rs | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/lib/entry/libimagentrylink/src/external.rs b/lib/entry/libimagentrylink/src/external.rs index 2aab7747..a66ba5b8 100644 --- a/lib/entry/libimagentrylink/src/external.rs +++ b/lib/entry/libimagentrylink/src/external.rs @@ -41,10 +41,10 @@ use libimagstore::storeid::IntoStoreId; use libimagutil::debug_result::*; use toml_query::read::TomlValueReadExt; +use toml_query::read::TomlValueReadTypeExt; use toml_query::insert::TomlValueInsertExt; use error::LinkErrorKind as LEK; -use error::LinkError as LE; use error::Result; use internal::InternalLinker; use module_path::ModuleEntryPath; @@ -69,27 +69,23 @@ impl Link for Entry { fn get_link_uri_from_filelockentry(&self) -> Result<Option<Url>> { self.get_header() - .read("links.external.content.url") + .read_string("links.external.content.url") .chain_err(|| LEK::EntryHeaderReadError) .and_then(|opt| match opt { - Some(&Value::String(ref s)) => { + None => Ok(None), + Some(ref s) => { debug!("Found url, parsing: {:?}", s); Url::parse(&s[..]).chain_err(|| LEK::InvalidUri).map(Some) }, - Some(_) => Err(LE::from_kind(LEK::LinkParserFieldTypeError)), - None => Ok(None), }) } fn get_url(&self) -> Result<Option<Url>> { - match self.get_header().read("links.external.url") { - Ok(Some(&Value::String(ref s))) => { - Url::parse(&s[..]) - .map(Some) - .chain_err(|| LEK::EntryHeaderReadError) - }, - Ok(None) => Ok(None), - _ => Err(LE::from_kind(LEK::EntryHeaderReadError)) + match self.get_header().read_string("links.external.url")? { + None => Ok(None), + Some(ref s) => Url::parse(&s[..]) + .map(Some) + .chain_err(|| LEK::EntryHeaderReadError), } } |