ucl/ucl/builtins/strs.go

46 lines
789 B
Go

package builtins
import (
"context"
"strings"
"ucl.lmika.dev/ucl"
)
func Strs() ucl.Module {
return ucl.Module{
Name: "strs",
Builtins: map[string]ucl.BuiltinHandler{
"to-upper": toUpper,
"to-lower": toLower,
"trim": trim,
},
}
}
func toUpper(ctx context.Context, args ucl.CallArgs) (any, error) {
var s string
if err := args.Bind(&s); err != nil {
return nil, err
}
return strings.ToUpper(s), nil
}
func toLower(ctx context.Context, args ucl.CallArgs) (any, error) {
var s string
if err := args.Bind(&s); err != nil {
return nil, err
}
return strings.ToLower(s), nil
}
func trim(ctx context.Context, args ucl.CallArgs) (any, error) {
var s string
if err := args.Bind(&s); err != nil {
return nil, err
}
return strings.TrimSpace(s), nil
}