oneline_template/functions/int/
hex_fmt.rs1use crate::function_executor::*;
2
3pub struct HexFmt;
11
12impl FunctionExecutor for HexFmt {
13 fn schema(&self) -> FunctionSchema {
14 FunctionSchema::new("int:hex_fmt")
15 .with_argument(FunctionArgument::uint())
16 }
17
18 fn call(&self, value: Value, arguments: &[Value]) -> Result<Value, FunctionError> {
19 let value = value.as_int()?;
20 let value = format!("{:x}", value);
21 let leading_zeroes = arguments[0].as_uint()?;
22 let leading_zeroes = *leading_zeroes as usize;
23 let leading_zeroes = leading_zeroes.saturating_sub(value.len());
24 let mut result = "0".repeat(leading_zeroes);
25 result += value.as_str();
26 let value = Value::String(result);
27 return Ok(value);
28 }
29}