aboutsummaryrefslogtreecommitdiffstats
path: root/askama_rocket/src/lib.rs
blob: 39c7c07a4cd7e4a019ca2878e638426aacadb9be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#![deny(elided_lifetimes_in_paths)]

use std::io::Cursor;

pub use askama::*;
use rocket::http::{ContentType, Status};
pub use rocket::request::Request;
use rocket::response::Response;
pub use rocket::response::{Responder, Result};

pub fn respond<T: Template>(t: &T, ext: &str) -> Result<'static> {
    let rsp = t.render().map_err(|_| Status::InternalServerError)?;
    let ctype = ContentType::from_extension(ext).ok_or(Status::InternalServerError)?;
    Response::build()
        .header(ctype)
        .sized_body(Cursor::new(rsp))
        .ok()
}