remote tokio-core dependency

This commit is contained in:
Sean McArthur
2018-07-05 14:06:01 -07:00
parent c417d6dab8
commit 6c78e363e0
3 changed files with 16 additions and 45 deletions

View File

@@ -27,7 +27,6 @@ native-tls = "0.1.5"
serde = "1.0"
serde_json = "1.0"
serde_urlencoded = "0.5"
tokio-core = "0.1.17"
tokio = "0.1.7"
tokio-io = "0.1"
tokio-tls = "0.1"

View File

@@ -1,43 +1,35 @@
#![allow(warnings)] // remove when error_chain is fixed
#![deny(warnings)]
extern crate futures;
extern crate reqwest;
extern crate tokio_core;
#[macro_use]
extern crate error_chain;
extern crate tokio;
use std::mem;
use std::io::{self, Cursor};
use futures::{Future, Stream};
use reqwest::unstable::async::{Client, Decoder};
error_chain! {
foreign_links {
ReqError(reqwest::Error);
IoError(io::Error);
}
}
fn run() -> Result<()> {
let mut core = tokio_core::reactor::Core::new()?;
let client = Client::new();
let work = client.get("https://hyper.rs")
fn fetch() -> impl Future<Item=(), Error=()> {
Client::new()
.get("https://hyper.rs")
.send()
.map_err(|e| Error::from(e))
.and_then(|mut res| {
println!("{}", res.status());
let body = mem::replace(res.body_mut(), Decoder::empty());
body.concat2().map_err(Into::into)
body.concat2()
})
.and_then(|body| {
.map_err(|err| println!("request error: {}", err))
.map(|body| {
let mut body = Cursor::new(body);
io::copy(&mut body, &mut io::stdout()).map_err(Into::into)
});
core.run(work)?;
Ok(())
io::copy(&mut body, &mut io::stdout())
.map_err(|err| {
println!("stdout error: {}", err);
});
})
}
quick_main!(run);
fn main() {
tokio::run(fetch());
}

View File

@@ -29,26 +29,6 @@ static DEFAULT_USER_AGENT: &'static str =
///
/// The `Client` holds a connection pool internally, so it is advised that
/// you create one and **reuse** it.
///
/// # Examples
///
/// ```rust
/// # #[cfg(features = "unstable")]
/// # fn run() -> Result<(), Box<::std::error::Error>> {
/// # extern crate tokio_core;
/// # extern crate futures;
/// use futures::Future;
/// use tokio_core::reactor::Core;
/// use reqwest::unstable::async::Client;
///
/// let mut core = Core::new()?;
/// let client = Client::new(&core.handle());
/// let fut = client.get("http://httpbin.org/").send();
/// core.run(fut)?;
/// # Ok(())
/// # }
/// # fn main() {}
/// ```
#[derive(Clone)]
pub struct Client {