bomboni_template
Utilities for working with Handlebars templates. This crate provides a collection of custom Handlebars helpers for template rendering, including helpers for mathematical operations, string transformations, value manipulation, conditional logic, and dynamic template rendering.Main Function
register_helpers
Registers all template helpers with the Handlebars registry.Example
Math Helpers
Mathematical operations on numbers.Binary Operations
add - Addition
subtract - Subtraction
multiply - Multiplication
divide - Division
modulo - Modulo operation
Unary Operations
negate - Negate value
absolute - Absolute value
round - Round to nearest integer
ceil - Ceiling (round up)
floor - Floor (round down)
sqrt - Square root
sign - Sign of number (-1, 0, or 1)
Advanced Operations
pow - Power (x^p)
clamp - Clamp value between min and max
String Helpers
String manipulation and case conversion.Case Conversion
upperCase - UPPER CASE
lowerCase - lower case
titleCase - Title Case
camelCase - camelCase
pascalCase - PascalCase
snakeCase - snake_case
screamingSnakeCase - SCREAMING_SNAKE_CASE
kebabCase - kebab-case
trainCase - Train-Case
toggleCase, alternatingCase, upperCamelCase, upperSnakeCase, cobolCase, flatCase, upperFlatCase
String Formatting
toString - Convert value to string
toJson - Convert to JSON
concat - Concatenate multiple values
toIntegerString - Convert to integer string
Value Helpers
Create and manipulate data structures.Object Operations
object - Create object from named parameters
objectHasKey - Check if object has key
Array Operations
array - Create array from parameters
groupBy - Group array by key
contains - Check if haystack contains needle
filter - Filter array by predicate template
Truthiness Checks
none - Check if all values are falsy
all - Check if all values are truthy
some - Check if some value is truthy
Conditional Helpers
orElse - Return item if truthy, else fallback
andThen - Return fallback if item truthy, else item
eitherOr - Conditional value selection
includeZero parameter to control whether 0 is treated as truthy:
Switch Helper
Switch/case pattern matching for templates.switch - Begin switch statement
case - Match one or more values
default - Fallback when no case matches
Basic Example
Multi-Value Matching
@value variable inside case/default blocks contains the matched value.
Nested Switch
Render and Decorators
Dynamic template rendering and local variables.render Helper
render - Dynamically render template string
set Decorator
set - Set local variables (decorator syntax)
@ prefix.
Combined Example
Complete Example
Helper Categories
Math Helpers
add, subtract, multiply, divide, modulo, negate, absolute, round, ceil, floor, sqrt, sign, pow, clamp
String Helpers
upperCase, lowerCase, titleCase, toggleCase, alternatingCase, camelCase, pascalCase, upperCamelCase, snakeCase, upperSnakeCase, screamingSnakeCase, kebabCase, cobolCase, trainCase, flatCase, upperFlatCase, toString, toJson, concat, toIntegerString
Value Helpers
object, objectHasKey, array, groupBy, contains, none, all, some, filter, orElse, andThen, eitherOr
Switch Helper
switch, case, default
Render and Decorators
render, set