Advertisement
Kiscsirke

Untitled

Jan 2nd, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.89 KB | None | 0 0
  1. struct CachedFile(NamedFile);
  2.  
  3. impl<'r> Responder<'r> for CachedFile {
  4.     fn respond_to(self, req: &Request) -> response::Result<'r> {
  5.        let mut response_build = Response::build();
  6.        let nfile_result: Result<Response, Status> = self.0.respond_to(req);
  7.        match nfile_result {
  8.            Ok(nfile_result_response) => {
  9.                response_build = Response::build_from(nfile_result_response);
  10.                response_build.raw_header("Cache-control", "max-age=86400"); //  24h (24*60*60)
  11.            }
  12.            Err(nfile_result_status) => {
  13.                response_build.raw_status(nfile_result_status.code, nfile_result_status.reason);
  14.            }
  15.        }
  16.        response_build.ok()
  17.    }
  18. }
  19.  
  20. #[get("/resources/<file..>")]
  21. fn files(file: PathBuf) -> Option<CachedFile> {
  22.    NamedFile::open(Path::new("resources/").join(file)).ok().map(|nf| CachedFile(nf))
  23. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement