Rss::Error is now Send!

This commit is contained in:
Jordan Petridis 2018-04-03 11:57:38 +03:00
parent 7a3a148359
commit 4ed70a8011
3 changed files with 10 additions and 12 deletions

View File

@ -3,17 +3,12 @@ use diesel::r2d2;
use diesel_migrations::RunMigrationsError;
use hyper;
use native_tls;
// use rss;
use rss;
use url;
use std::io;
// use std::fmt;
// fadsadfs NOT SYNC
// #[derive(Fail, Debug)]
// #[fail(display = "RSS Error: {}", _0)]
// struct RSSError(rss::Error);
#[derive(Fail, Debug)]
pub enum DataError {
#[fail(display = "SQL Query failed: {}", _0)]
@ -34,8 +29,7 @@ pub enum DataError {
#[fail(display = "IO Error: {}", _0)]
IOError(#[cause] io::Error),
#[fail(display = "RSS Error: {}", _0)]
// Rss::Error is not yet Sync
RssCrateError(String),
RssError(#[cause] rss::Error),
#[fail(display = "Error: {}", _0)]
Bail(String),
#[fail(display = "Request to {} returned {}. Context: {}", url, status_code, context)]
@ -100,6 +94,12 @@ impl From<io::Error> for DataError {
}
}
impl From<rss::Error> for DataError {
fn from(err: rss::Error) -> Self {
DataError::RssError(err)
}
}
impl From<String> for DataError {
fn from(err: String) -> Self {
DataError::Bail(err)

View File

@ -293,9 +293,8 @@ fn response_to_channel(
.map_err(From::from)
.map(|iter| iter.collect::<Vec<u8>>())
.map(|utf_8_bytes| String::from_utf8_lossy(&utf_8_bytes).into_owned())
.and_then(|buf| {
Channel::from_str(&buf).or_else(|err| Err(DataError::RssCrateError(format!("{}", err))))
});
.and_then(|buf| Channel::from_str(&buf).map_err(From::from));
let cpu_chan = pool.spawn(chan);
Box::new(cpu_chan)
}

View File

@ -3,7 +3,6 @@
use chrono::prelude::*;
use rayon::prelude::*;
use itertools::Itertools;
use url::{Position, Url};
use dbqueries;