diff --git a/podcasts-data/src/errors.rs b/podcasts-data/src/errors.rs index 748c149..6559fa1 100644 --- a/podcasts-data/src/errors.rs +++ b/podcasts-data/src/errors.rs @@ -91,7 +91,6 @@ pub enum DataError { } // Maps a type to a variant of the DataError enum -#[macro_export] macro_rules! easy_from_impl { ($outer_type:ty, $from:ty => $to:expr) => ( impl From<$from> for $outer_type { diff --git a/podcasts-downloader/src/errors.rs b/podcasts-downloader/src/errors.rs index c0bfbc9..9b481d5 100644 --- a/podcasts-downloader/src/errors.rs +++ b/podcasts-downloader/src/errors.rs @@ -44,6 +44,21 @@ pub enum DownloadError { InvalidCachedImageLocation, } +// Maps a type to a variant of the DataError enum +macro_rules! easy_from_impl { + ($outer_type:ty, $from:ty => $to:expr) => ( + impl From<$from> for $outer_type { + fn from(err: $from) -> Self { + $to(err) + } + } + ); + ($outer_type:ty, $from:ty => $to:expr, $($f:ty => $t:expr),+) => ( + easy_from_impl!($outer_type, $from => $to); + easy_from_impl!($outer_type, $($f => $t),+); + ); +} + easy_from_impl!( DownloadError, reqwest::Error => DownloadError::RequestError, diff --git a/podcasts-downloader/src/lib.rs b/podcasts-downloader/src/lib.rs index 76b7d65..548fe35 100644 --- a/podcasts-downloader/src/lib.rs +++ b/podcasts-downloader/src/lib.rs @@ -53,7 +53,6 @@ extern crate pretty_assertions; extern crate glob; extern crate mime_guess; -#[macro_use] extern crate podcasts_data; extern crate reqwest; extern crate tempdir;