use std::sync::Arc; use handlebars::Handlebars; use serde_json::json; use tiny_http::{Response, Server}; fn handlebars() -> Handlebars<'static> { let mut reg = Handlebars::new(); // enable dev mode for template reloading reg.set_dev_mode(true); // register a template from the file // modified the file after the server starts to see things changing reg.register_template_file("tpl", "./examples/dev_mode/template.hbs") .unwrap(); reg } fn main() { let hbs = Arc::new(handlebars()); let server = Server::http("127.0.0.1:3030").expect("Failed to start demo server."); println!("Edit ./examples/dev_mode/template.hbs and request http://localhost:3030 to see the change on the fly."); for req in server.incoming_requests() { let result = hbs .render("tpl", &json!({"model": "t14s", "brand": "Thinkpad"})) .unwrap_or_else(|e| e.to_string()); req.respond(Response::from_string(result)).unwrap(); } }