From db21fa9dd4c3d30888da501e2919fe900eb4c733 Mon Sep 17 00:00:00 2001 From: Matthias Beyer Date: Fri, 8 Jul 2016 16:29:48 +0200 Subject: [PATCH] Add IntoUrl trait for Link type With this we can translate a Link type into an URL type from url::Url --- libimagbookmark/src/link.rs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/libimagbookmark/src/link.rs b/libimagbookmark/src/link.rs index 3dd3aeb0..7dbab981 100644 --- a/libimagbookmark/src/link.rs +++ b/libimagbookmark/src/link.rs @@ -1,5 +1,9 @@ use std::ops::{Deref, DerefMut}; +use result::Result; + +use url::Url; + #[derive(Debug, Clone)] pub struct Link(String); @@ -19,3 +23,19 @@ impl DerefMut for Link { } } + +pub trait IntoUrl { + fn into_url(self) -> Result; +} + +impl IntoUrl for Link { + + fn into_url(self) -> Result { + use error::BookmarkErrorKind as BEK; + use error::MapErrInto; + + Url::parse(&self[..]).map_err_into(BEK::LinkParsingError) + } + +} +