dsq_functions/builtin/
base32_encode.rs1use dsq_shared::value::Value;
2use dsq_shared::Result;
3
4pub fn builtin_base32_encode(args: &[Value]) -> Result<Value> {
5 if args.len() != 1 {
6 return Err(dsq_shared::error::operation_error(
7 "base32_encode() expects 1 argument",
8 ));
9 }
10
11 match &args[0] {
12 Value::String(s) => {
13 let encoded =
14 base32::encode(base32::Alphabet::Rfc4648 { padding: false }, s.as_bytes());
15 Ok(Value::String(encoded))
16 }
17 _ => Err(dsq_shared::error::operation_error(
18 "base32_encode() requires string argument",
19 )),
20 }
21}
22
23inventory::submit! {
24 crate::FunctionRegistration {
25 name: "base32_encode",
26 func: builtin_base32_encode,
27 }
28}