#![feature(plugin)] #![plugin(rocket_codegen)] extern crate diesel; extern crate rocket; extern crate rocket_blog; #[macro_use] extern crate bart_derive; use self::diesel::prelude::*; use self::rocket_blog::{schema, models}; #[derive(BartDisplay)] #[template = "templates/index.html"] struct IndexTemplate<'a> { title: &'a str, content: &'a str } #[get("/")] fn index(conn: rocket_blog::DbConn) -> String { use schema::posts::dsl::*; let results = posts.filter(published.eq(false)) .limit(5) .load::(&*conn) .expect("Error loading posts"); let output : String = results.iter().map(|post| { format!("{}", &IndexTemplate{ title: &post.title, content: &post.body }) }).collect(); output } fn main() { rocket::ignite() .manage(rocket_blog::init_db_pool()) .mount("/", routes![index]) .launch(); }