From ab7736c79095d33901d80b4a59da61a191dbf1ba Mon Sep 17 00:00:00 2001 From: Gorm Casper Date: Mon, 9 Jul 2018 20:18:31 +0200 Subject: [PATCH] init --- .travis.yml | 1 + Cargo.lock | 8 ++++++++ Cargo.toml | 1 + middleware/Cargo.toml | 8 ++++++++ middleware/src/main.rs | 20 ++++++++++++++++++++ middleware/src/simple.rs | 13 +++++++++++++ 6 files changed, 51 insertions(+) create mode 100644 middleware/Cargo.toml create mode 100644 middleware/src/main.rs create mode 100644 middleware/src/simple.rs diff --git a/.travis.yml b/.travis.yml index 7dff60be..84057bb8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -45,6 +45,7 @@ script: cd http-proxy && cargo check && cd .. cd json && cargo check && cd .. cd juniper && cargo check && cd .. + cd middleware && cargo check && cd .. cd multipart && cargo check && cd .. cd protobuf && cargo check && cd .. cd r2d2 && cargo check && cd .. diff --git a/Cargo.lock b/Cargo.lock index df4c8d04..769e1186 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1038,6 +1038,14 @@ name = "memoffset" version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" +[[package]] +name = "middleware-example" +version = "0.1.0" +dependencies = [ + "actix 0.5.8 (registry+https://github.com/rust-lang/crates.io-index)", + "actix-web 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)", +] + [[package]] name = "mime" version = "0.3.7" diff --git a/Cargo.toml b/Cargo.toml index 76331ac4..c78478ca 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,6 +12,7 @@ members = [ "http-proxy", "json", "juniper", + "middleware", "multipart", "protobuf", "r2d2", diff --git a/middleware/Cargo.toml b/middleware/Cargo.toml new file mode 100644 index 00000000..9db8f0b7 --- /dev/null +++ b/middleware/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "middleware-example" +version = "0.1.0" +authors = ["Gorm Casper "] + +[dependencies] +actix = "0.5" +actix-web = "^0.6" diff --git a/middleware/src/main.rs b/middleware/src/main.rs new file mode 100644 index 00000000..18242c6b --- /dev/null +++ b/middleware/src/main.rs @@ -0,0 +1,20 @@ +extern crate actix; +extern crate actix_web; + +use actix_web::{server, App}; + +mod simple; + +fn main() { + let sys = actix::System::new("middleware-example"); + + let _addr = server::new(|| { + App::new() + .middleware(simple::SayHi) + .resource("/index.html", |r| r.f(|_| "Hello, middleware!")) + }).bind("0.0.0.0:8080") + .unwrap() + .start(); + + let _ = sys.run(); +} diff --git a/middleware/src/simple.rs b/middleware/src/simple.rs new file mode 100644 index 00000000..d1b9f998 --- /dev/null +++ b/middleware/src/simple.rs @@ -0,0 +1,13 @@ +extern crate actix_web; + +use actix_web::middleware::{Middleware, Started}; +use actix_web::{HttpRequest, Result}; + +pub struct SayHi; + +impl Middleware for SayHi { + fn start(&self, _req: &mut HttpRequest) -> Result { + println!("Hi"); + Ok(Started::Done) + } +}