dsq_functions/builtin/
base32_encode.rs

1use 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}