package cmdpacks import ( "context" "github.com/aws/aws-sdk-go-v2/service/dynamodb/types" "ucl.lmika.dev/ucl" ) type avModule struct { } func (avModule) avTrue(ctx context.Context, args ucl.CallArgs) (_ any, err error) { return attributeValueProxy{value: &types.AttributeValueMemberBOOL{Value: true}}, nil } func (avModule) avFalse(ctx context.Context, args ucl.CallArgs) (_ any, err error) { return attributeValueProxy{value: &types.AttributeValueMemberBOOL{Value: false}}, nil } func (avModule) avNull(ctx context.Context, args ucl.CallArgs) (_ any, err error) { return attributeValueProxy{value: &types.AttributeValueMemberNULL{Value: true}}, nil } func (avModule) avStringSet(ctx context.Context, args ucl.CallArgs) (_ any, err error) { var listable ucl.Listable if err := args.Bind(&listable); err != nil { return nil, err } ss := make([]string, listable.Len()) for i := 0; i < listable.Len(); i++ { item := listable.Index(i) ss[i] = item.String() } return attributeValueProxy{value: &types.AttributeValueMemberSS{Value: ss}}, nil } func moduleAttrValue() ucl.Module { m := avModule{} return ucl.Module{ Name: "av", Builtins: map[string]ucl.BuiltinHandler{ "true": m.avTrue, "false": m.avFalse, "null": m.avNull, "string-set": m.avStringSet, }, } }