#![allow(clippy::type_complexity)] mod app; pub mod extract; mod handler; // mod info; pub mod blocking; pub mod guard; pub mod middleware; mod request; mod resource; mod responder; mod route; mod scope; mod server; mod service; mod state; pub mod test; // re-export for convenience pub use actix_http::Response as HttpResponse; pub use actix_http::{error, http, Error, HttpMessage, ResponseError, Result}; pub use crate::app::{App, AppRouter}; pub use crate::extract::{FromRequest, Json}; pub use crate::request::HttpRequest; pub use crate::resource::Resource; pub use crate::responder::{Either, Responder}; pub use crate::route::Route; pub use crate::scope::Scope; pub use crate::server::HttpServer; pub use crate::service::{ServiceFromRequest, ServiceRequest, ServiceResponse}; pub use crate::state::State; pub mod web { use actix_http::{http::Method, Error, Response}; use futures::IntoFuture; use crate::extract::FromRequest; use crate::handler::{AsyncFactory, Factory}; use crate::responder::Responder; use crate::Route; /// Create **route** without configuration. pub fn route() -> Route

{ Route::new() } /// Create **route** with `GET` method guard. pub fn get() -> Route

{ Route::get() } /// Create **route** with `POST` method guard. pub fn post() -> Route

{ Route::post() } /// Create **route** with `PUT` method guard. pub fn put() -> Route

{ Route::put() } /// Create **route** with `DELETE` method guard. pub fn delete() -> Route

{ Route::delete() } /// Create **route** with `HEAD` method guard. pub fn head() -> Route

{ Route::new().method(Method::HEAD) } /// Create **route** and add method guard. pub fn method(method: Method) -> Route

{ Route::new().method(method) } /// Create a new route and add handler. /// /// ```rust /// use actix_web::{web, App, HttpResponse}; /// /// fn index() -> HttpResponse { /// unimplemented!() /// } /// /// App::new().resource("/", |r| r.route(web::to(index))); /// ``` pub fn to(handler: F) -> Route

where F: Factory + 'static, I: FromRequest

+ 'static, R: Responder + 'static, { Route::new().to(handler) } /// Create a new route and add async handler. /// /// ```rust /// use actix_web::{web, App, HttpResponse, Error}; /// /// fn index() -> impl futures::Future { /// futures::future::ok(HttpResponse::Ok().finish()) /// } /// /// App::new().resource("/", |r| r.route(web::to_async(index))); /// ``` pub fn to_async(handler: F) -> Route

where F: AsyncFactory, I: FromRequest

+ 'static, R: IntoFuture + 'static, R::Item: Into, R::Error: Into, { Route::new().to_async(handler) } }