1 use actix_web::{get, web, HttpRequest};
2 #[cfg(unix)]
3 use actix_web::{middleware, App, Error, HttpResponse, HttpServer};
4 
5 #[get("/resource1/{name}/index.html")]
index(req: HttpRequest, name: web::Path<String>) -> String6 async fn index(req: HttpRequest, name: web::Path<String>) -> String {
7     println!("REQ: {:?}", req);
8     format!("Hello: {}!\r\n", name)
9 }
10 
11 #[cfg(unix)]
index_async(req: HttpRequest) -> Result<&'static str, Error>12 async fn index_async(req: HttpRequest) -> Result<&'static str, Error> {
13     println!("REQ: {:?}", req);
14     Ok("Hello world!\r\n")
15 }
16 
17 #[get("/")]
no_params() -> &'static str18 async fn no_params() -> &'static str {
19     "Hello world!\r\n"
20 }
21 
22 #[cfg(unix)]
23 #[actix_web::main]
main() -> std::io::Result<()>24 async fn main() -> std::io::Result<()> {
25     env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
26 
27     HttpServer::new(|| {
28         App::new()
29             .wrap(middleware::DefaultHeaders::new().header("X-Version", "0.2"))
30             .wrap(middleware::Compress::default())
31             .wrap(middleware::Logger::default())
32             .service(index)
33             .service(no_params)
34             .service(
35                 web::resource("/resource2/index.html")
36                     .wrap(middleware::DefaultHeaders::new().header("X-Version-R2", "0.3"))
37                     .default_service(web::route().to(HttpResponse::MethodNotAllowed))
38                     .route(web::get().to(index_async)),
39             )
40             .service(web::resource("/test1.html").to(|| async { "Test\r\n" }))
41     })
42     .bind_uds("/Users/fafhrd91/uds-test")?
43     .workers(1)
44     .run()
45     .await
46 }
47 
48 #[cfg(not(unix))]
main()49 fn main() {}
50