1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
//! # Handlebars Switch Helper //! //! This provides a [Handlebars](http://handlebarsjs.com/) `{{#switch}}` helper to //! the already incredible [handlebars-rust](https://github.com/sunng87/handlebars-rust) //! crate. //! //! Links of interest: //! //! - [Documentation](https://docs.rs/handlebars_switch) //! - [handlebars-rust](https://github.com/sunng87/handlebars-rust) //! - [Handlebars](http://handlebarsjs.com) //! //! ## Quick Start //! //! You can easily add the ``{{#switch}}`` helper to a rust Handlebars object using //! the `Handlebars#register_helper` method: //! //! ```ignore //! use handlebars::Handlebars; //! use handlebars_switch::SwitchHelper; //! //! let mut handlebars = Handlebars::new(); //! handlebars.register_helper("switch", Box::new(SwitchHelper)); //! ``` //! //! ### Example //! //! Below is an example that renders a different page depending on the user's //! access level: //! //! //! ``` //! extern crate handlebars_switch; //! extern crate handlebars; //! #[macro_use] extern crate serde_json; //! //! use handlebars::Handlebars; //! use handlebars_switch::SwitchHelper; //! //! fn main() { //! let mut handlebars = Handlebars::new(); //! handlebars.register_helper("switch", Box::new(SwitchHelper)); //! //! let tpl = "\ //! {{#switch access}}\ //! {{#case \"admin\"}}Admin{{/case}}\ //! {{#default}}User{{/default}}\ //! {{/switch}}\ //! "; //! //! assert_eq!( //! handlebars.template_render(tpl, &json!({"access": "admin"})).unwrap(), //! "Admin" //! ); //! //! assert_eq!( //! handlebars.template_render(tpl, &json!({"access": "nobody"})).unwrap(), //! "User" //! ); //! } //! ``` extern crate handlebars; #[macro_use] extern crate serde_json; pub use self::switch::SwitchHelper; mod switch;