Initial commit of handlebars helpers library
This commit is contained in:
commit
efd629b243
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
@ -0,0 +1,8 @@
|
||||
[package]
|
||||
name = "handlebars-helpers"
|
||||
version = "0.1.0"
|
||||
authors = ["Adrian Malacoda <adrian.malacoda@monarch-pass.net>"]
|
||||
|
||||
[dependencies]
|
||||
handlebars = "0.32.2"
|
||||
serde_json = "^1.0.0"
|
25
src/lib.rs
Normal file
25
src/lib.rs
Normal file
@ -0,0 +1,25 @@
|
||||
extern crate handlebars;
|
||||
use serde_json::Value;
|
||||
use handlebars::{Handlebars, Helper, HelperDef, RenderContext, RenderError};
|
||||
|
||||
extern crate serde_json;
|
||||
|
||||
fn json_format_helper(helper: &Helper, _: &Handlebars, render_context: &mut RenderContext) -> Result<(), RenderError> {
|
||||
let param = helper.param(0).ok_or(RenderError::new("Param 0 is required for format helper.",),)?;
|
||||
render_context.writer.write(param.value().to_string().into_bytes().as_ref())?;
|
||||
Ok(())
|
||||
}
|
||||
|
||||
struct EqHelper;
|
||||
impl HelperDef for EqHelper {
|
||||
fn call_inner(&self, helper: &Helper, _: &Handlebars, _: &mut RenderContext) -> Result<Option<Value>, RenderError> {
|
||||
let param1 = helper.param(0).ok_or(RenderError::new("Param 0 is required for eq helper.",),)?.value();
|
||||
let param2 = helper.param(1).ok_or(RenderError::new("Param 1 is required for eq helper.",),)?.value();
|
||||
Ok(Some(Value::Bool(param1 == param2)))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn register(handle: &mut Handlebars) {
|
||||
handle.register_helper("JSONstringify", Box::new(json_format_helper));
|
||||
handle.register_helper("eq", Box::new(EqHelper));
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user