map actix_web::error::Error to std::io::Error as string.

Conversion is by way of the `Display` trait impl since the actix errors
all seem to be more concerned with converting to/from http responses
rather than standard errors.
This commit is contained in:
Owen Nelson 2018-05-29 10:42:53 -07:00 committed by Vincent Prouillet
parent 908f16855a
commit 45156c46c9

View file

@ -117,7 +117,12 @@ fn handle_directory<'a, 'b>(dir: &'a fs::Directory, req: &'b HttpRequest) -> io:
let mut path = PathBuf::from(&dir.base);
path.push(&dir.path);
path.push("index.html");
Ok(fs::NamedFile::open(path).respond_to(req).unwrap())
fs::NamedFile::open(path)
.respond_to(req)
// Didn't see a clear path from
// `actix_web::error::Error` to `std::error::Error`
// so being "cheap" and just leveraging the Display impl to wrap it.
.map_err(|e| io::Error::new(io::ErrorKind::Other, format!("{}", e)))
}
pub fn serve(interface: &str, port: &str, output_dir: &str, base_url: &str, config_file: &str) -> Result<()> {