diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2018-01-14 12:39:50 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2018-01-14 12:39:50 +0100 |
commit | 0dae37a2e98c13fbc78acd58b86565fd6f14c654 (patch) | |
tree | 681be6b03971acca3f57fd30d613909b60aaa984 /src/utils | |
parent | a77f6e9d27f98bc36d0911ce58c109f4a18bd835 (diff) | |
download | rocket-blog-0dae37a2e98c13fbc78acd58b86565fd6f14c654.tar.gz rocket-blog-0dae37a2e98c13fbc78acd58b86565fd6f14c654.tar.bz2 rocket-blog-0dae37a2e98c13fbc78acd58b86565fd6f14c654.zip |
Split out layout from templates.
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/mod.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/utils/mod.rs b/src/utils/mod.rs index a1ece8b..2e79934 100644 --- a/src/utils/mod.rs +++ b/src/utils/mod.rs @@ -1,4 +1,5 @@ use diesel::pg::PgConnection; +use std::fmt::Display; use r2d2; use r2d2_diesel::ConnectionManager; @@ -44,6 +45,13 @@ impl Deref for DbConn { } } +#[derive(BartDisplay, Serialize)] +#[template = "templates/layout.html"] +pub struct Page<T: Display> { + pub title: String, + pub content: T +} + macro_rules! implement_responder_for { // Implement a responder for the given template type // @@ -52,7 +60,7 @@ macro_rules! implement_responder_for { // So it will have to be passed in to the argument at // the macro incovation instead. ($template_type:ty) => ( - impl<'a> ::rocket::response::Responder<'a> for $template_type { + impl<'a> ::rocket::response::Responder<'a> for ::utils::Page<$template_type> { fn respond_to(self, _: &::rocket::Request) -> Result<::rocket::Response<'static>, ::rocket::http::Status> { ::rocket::Response::build() .header(::rocket::http::ContentType::HTML) |