Fix error handling put in place to side-step a confusing compiler error.

I filed actix/actix-web#261 as per the maintaner's request while
working on #310.

Having looked at the issue this morning, it appeared there was an
implementation to convert `io::Result` into a `Responder`, which kicked
in when I tried to access the `respond_to()` method without getting the
inner type from that first result before hand.
This commit is contained in:
Owen Nelson 2018-05-31 11:39:43 -07:00 committed by Vincent Prouillet
parent 45156c46c9
commit 0e0cd244f3

View file

@ -117,12 +117,7 @@ fn handle_directory<'a, 'b>(dir: &'a fs::Directory, req: &'b HttpRequest) -> io:
let mut path = PathBuf::from(&dir.base); let mut path = PathBuf::from(&dir.base);
path.push(&dir.path); path.push(&dir.path);
path.push("index.html"); path.push("index.html");
fs::NamedFile::open(path) fs::NamedFile::open(path)?.respond_to(req)
.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<()> { pub fn serve(interface: &str, port: &str, output_dir: &str, base_url: &str, config_file: &str) -> Result<()> {