From 397804a786d0a4e8167706b46a4bb08808bd17cd Mon Sep 17 00:00:00 2001 From: Ali Shirvani Date: Wed, 28 Nov 2018 09:15:08 +0330 Subject: [PATCH 1/2] echo example with `impl Future` --- examples/echo2.rs | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 examples/echo2.rs diff --git a/examples/echo2.rs b/examples/echo2.rs new file mode 100644 index 00000000..7d8a428f --- /dev/null +++ b/examples/echo2.rs @@ -0,0 +1,47 @@ +#[macro_use] +extern crate log; +extern crate env_logger; + +extern crate actix_http; +extern crate actix_net; +extern crate futures; +extern crate http; +extern crate bytes; + +use actix_http::{h1, Response, Request, Error}; +use bytes::Bytes; +use actix_net::server::Server; +use actix_net::service::NewServiceExt; +use futures::Future; +use http::header::{HeaderValue}; +use actix_http::HttpMessage; +use std::env; + +fn handle_request(_req: Request) -> impl Future{ + _req.body() + .limit(512) + .from_err() + .and_then(|bytes: Bytes| { + info!("request body: {:?}", bytes); + let mut res = Response::Ok(); + res.header("x-head", HeaderValue::from_static("dummy value!")); + Ok(res.body(bytes)) + }) +} + +fn main() { + env::set_var("RUST_LOG", "echo=info"); + env_logger::init(); + + Server::new().bind("echo", "127.0.0.1:8080", || { + h1::H1Service::build() + .client_timeout(1000) + .client_disconnect(1000) + .server_hostname("localhost") + .finish(|_req: Request| { + handle_request(_req) + }) + .map(|_| ()) + }).unwrap().run(); +} + From 4028f6f6fd63cad32636d5f1b461f372302c9af4 Mon Sep 17 00:00:00 2001 From: Ali Shirvani Date: Wed, 28 Nov 2018 09:42:04 +0330 Subject: [PATCH 2/2] http crate removed, cargo fmt --- examples/echo.rs | 34 +++++++++++++--------------- examples/echo2.rs | 49 ++++++++++++++++++---------------------- examples/framed_hello.rs | 31 +++++++++++++------------ examples/hello-world.rs | 30 ++++++++++++------------ src/client/mod.rs | 2 +- 5 files changed, 70 insertions(+), 76 deletions(-) diff --git a/examples/echo.rs b/examples/echo.rs index 91a3c76a..c98863e5 100644 --- a/examples/echo.rs +++ b/examples/echo.rs @@ -4,39 +4,37 @@ extern crate env_logger; extern crate actix_http; extern crate actix_net; +extern crate bytes; extern crate futures; extern crate http; -extern crate bytes; -use actix_http::{h1, Response, Request}; -use bytes::Bytes; +use actix_http::HttpMessage; +use actix_http::{h1, Request, Response}; use actix_net::server::Server; use actix_net::service::NewServiceExt; +use bytes::Bytes; use futures::Future; -use http::header::{HeaderValue}; -use actix_http::HttpMessage; +use http::header::HeaderValue; use std::env; fn main() { env::set_var("RUST_LOG", "echo=info"); env_logger::init(); - Server::new().bind("echo", "127.0.0.1:8080", || { - h1::H1Service::build() - .client_timeout(1000) - .client_disconnect(1000) - .server_hostname("localhost") - .finish(|_req: Request| { - _req.body() - .limit(512) - .and_then(|bytes: Bytes| { + Server::new() + .bind("echo", "127.0.0.1:8080", || { + h1::H1Service::build() + .client_timeout(1000) + .client_disconnect(1000) + .server_hostname("localhost") + .finish(|_req: Request| { + _req.body().limit(512).and_then(|bytes: Bytes| { info!("request body: {:?}", bytes); let mut res = Response::Ok(); res.header("x-head", HeaderValue::from_static("dummy value!")); Ok(res.body(bytes)) }) - }) - .map(|_| ()) - }).unwrap().run(); + }).map(|_| ()) + }).unwrap() + .run(); } - diff --git a/examples/echo2.rs b/examples/echo2.rs index 7d8a428f..4c144b43 100644 --- a/examples/echo2.rs +++ b/examples/echo2.rs @@ -4,44 +4,39 @@ extern crate env_logger; extern crate actix_http; extern crate actix_net; -extern crate futures; -extern crate http; extern crate bytes; +extern crate futures; -use actix_http::{h1, Response, Request, Error}; -use bytes::Bytes; +use actix_http::http::HeaderValue; +use actix_http::HttpMessage; +use actix_http::{h1, Error, Request, Response}; use actix_net::server::Server; use actix_net::service::NewServiceExt; +use bytes::Bytes; use futures::Future; -use http::header::{HeaderValue}; -use actix_http::HttpMessage; use std::env; -fn handle_request(_req: Request) -> impl Future{ - _req.body() - .limit(512) - .from_err() - .and_then(|bytes: Bytes| { - info!("request body: {:?}", bytes); - let mut res = Response::Ok(); - res.header("x-head", HeaderValue::from_static("dummy value!")); - Ok(res.body(bytes)) - }) +fn handle_request(_req: Request) -> impl Future { + _req.body().limit(512).from_err().and_then(|bytes: Bytes| { + info!("request body: {:?}", bytes); + let mut res = Response::Ok(); + res.header("x-head", HeaderValue::from_static("dummy value!")); + Ok(res.body(bytes)) + }) } fn main() { env::set_var("RUST_LOG", "echo=info"); env_logger::init(); - Server::new().bind("echo", "127.0.0.1:8080", || { - h1::H1Service::build() - .client_timeout(1000) - .client_disconnect(1000) - .server_hostname("localhost") - .finish(|_req: Request| { - handle_request(_req) - }) - .map(|_| ()) - }).unwrap().run(); + Server::new() + .bind("echo", "127.0.0.1:8080", || { + h1::H1Service::build() + .client_timeout(1000) + .client_disconnect(1000) + .server_hostname("localhost") + .finish(|_req: Request| handle_request(_req)) + .map(|_| ()) + }).unwrap() + .run(); } - diff --git a/examples/framed_hello.rs b/examples/framed_hello.rs index 76d23d08..0c9175a9 100644 --- a/examples/framed_hello.rs +++ b/examples/framed_hello.rs @@ -1,18 +1,18 @@ -extern crate log; extern crate env_logger; +extern crate log; extern crate actix_http; extern crate actix_net; +extern crate bytes; extern crate futures; extern crate http; -extern crate bytes; -use actix_http::{h1, ServiceConfig, SendResponse, Response}; -use actix_net::framed::IntoFramed; +use actix_http::{h1, Response, SendResponse, ServiceConfig}; use actix_net::codec::Framed; -use actix_net::stream::TakeItem; +use actix_net::framed::IntoFramed; use actix_net::server::Server; use actix_net::service::NewServiceExt; +use actix_net::stream::TakeItem; use futures::Future; use std::env; @@ -20,14 +20,15 @@ fn main() { env::set_var("RUST_LOG", "framed_hello=info"); env_logger::init(); - Server::new().bind("framed_hello", "127.0.0.1:8080", || { - IntoFramed::new(|| h1::Codec::new(ServiceConfig::default())) - .and_then(TakeItem::new().map_err(|_| ())) - .and_then(|(_req, _framed): (_, Framed<_, _>)| { - SendResponse::send(_framed, Response::Ok().body("Hello world!")) - .map_err(|_| ()) - .map(|_| ()) - }) - }).unwrap().run(); + Server::new() + .bind("framed_hello", "127.0.0.1:8080", || { + IntoFramed::new(|| h1::Codec::new(ServiceConfig::default())) + .and_then(TakeItem::new().map_err(|_| ())) + .and_then(|(_req, _framed): (_, Framed<_, _>)| { + SendResponse::send(_framed, Response::Ok().body("Hello world!")) + .map_err(|_| ()) + .map(|_| ()) + }) + }).unwrap() + .run(); } - diff --git a/examples/hello-world.rs b/examples/hello-world.rs index 44e453df..74ff509b 100644 --- a/examples/hello-world.rs +++ b/examples/hello-world.rs @@ -11,25 +11,25 @@ use actix_http::{h1, Response}; use actix_net::server::Server; use actix_net::service::NewServiceExt; use futures::future; -use http::header::{HeaderValue}; +use http::header::HeaderValue; use std::env; fn main() { env::set_var("RUST_LOG", "hello_world=info"); env_logger::init(); - Server::new().bind("hello-world", "127.0.0.1:8080", || { - h1::H1Service::build() - .client_timeout(1000) - .client_disconnect(1000) - .server_hostname("localhost") - .finish(|_req| { - info!("{:?}", _req); - let mut res = Response::Ok(); - res.header("x-head", HeaderValue::from_static("dummy value!")); - future::ok::<_, ()>(res.body("Hello world!")) - }) - .map(|_| ()) - }).unwrap().run(); + Server::new() + .bind("hello-world", "127.0.0.1:8080", || { + h1::H1Service::build() + .client_timeout(1000) + .client_disconnect(1000) + .server_hostname("localhost") + .finish(|_req| { + info!("{:?}", _req); + let mut res = Response::Ok(); + res.header("x-head", HeaderValue::from_static("dummy value!")); + future::ok::<_, ()>(res.body("Hello world!")) + }).map(|_| ()) + }).unwrap() + .run(); } - diff --git a/src/client/mod.rs b/src/client/mod.rs index dcc4f5d4..76c3f8b8 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -13,4 +13,4 @@ pub use self::connection::Connection; pub use self::connector::Connector; pub use self::error::{ConnectorError, InvalidUrlKind, SendRequestError}; pub use self::request::{ClientRequest, ClientRequestBuilder}; -pub use self::response::ClientResponse; \ No newline at end of file +pub use self::response::ClientResponse;