2019-06-28 14:50:15 -04:00
|
|
|
// <logging>
|
2020-09-12 16:21:54 +01:00
|
|
|
use actix_web::{error, get, middleware::Logger, App, HttpServer, Result};
|
|
|
|
use derive_more::{Display, Error};
|
2020-11-27 01:10:05 +00:00
|
|
|
use log::debug;
|
2019-06-28 14:50:15 -04:00
|
|
|
|
2020-09-12 16:21:54 +01:00
|
|
|
#[derive(Debug, Display, Error)]
|
|
|
|
#[display(fmt = "my error: {}", name)]
|
2019-06-28 14:50:15 -04:00
|
|
|
pub struct MyError {
|
|
|
|
name: &'static str,
|
|
|
|
}
|
|
|
|
|
|
|
|
// Use default implementation for `error_response()` method
|
|
|
|
impl error::ResponseError for MyError {}
|
|
|
|
|
2020-09-12 16:21:54 +01:00
|
|
|
#[get("/")]
|
2019-12-28 16:26:17 +01:00
|
|
|
async fn index() -> Result<&'static str, MyError> {
|
2019-06-28 14:50:15 -04:00
|
|
|
let err = MyError { name: "test error" };
|
|
|
|
debug!("{}", err);
|
|
|
|
Err(err)
|
|
|
|
}
|
|
|
|
|
2021-03-01 11:29:36 +09:00
|
|
|
#[rustfmt::skip]
|
2020-09-12 16:21:54 +01:00
|
|
|
#[actix_web::main]
|
2019-12-28 16:26:17 +01:00
|
|
|
async fn main() -> std::io::Result<()> {
|
2019-06-28 14:50:15 -04:00
|
|
|
std::env::set_var("RUST_LOG", "my_errors=debug,actix_web=info");
|
|
|
|
std::env::set_var("RUST_BACKTRACE", "1");
|
|
|
|
env_logger::init();
|
|
|
|
|
2021-03-01 11:29:36 +09:00
|
|
|
HttpServer::new(|| {
|
|
|
|
let logger = Logger::default();
|
|
|
|
|
|
|
|
App::new()
|
|
|
|
.wrap(logger)
|
|
|
|
.service(index)
|
|
|
|
})
|
|
|
|
.bind("127.0.0.1:8080")?
|
|
|
|
.run()
|
|
|
|
.await
|
2019-06-28 14:50:15 -04:00
|
|
|
}
|
|
|
|
// </logging>
|