sq/libsq/core/kind/munge.go
Neil O'Toole 9cb42bf579
#244: shell completion for "sq add LOCATION" (#246)
- Shell completion for `sq add LOCATION`.
2023-06-13 10:06:18 -06:00

28 lines
657 B
Go

package kind
// MungeFunc is a function that accepts a value and returns a munged
// value with the appropriate Kind. For example, a Datetime MungeFunc
// would accept string "2020-06-11T02:50:54Z" and return a time.Time.
type MungeFunc func(any) (any, error)
var _ MungeFunc = MungeEmptyStringAsNil
// MungeEmptyStringAsNil munges v to nil if v
// is an empty string.
func MungeEmptyStringAsNil(v any) (any, error) {
switch v := v.(type) {
case nil:
return nil, nil //nolint:nilnil
case *string:
if len(*v) == 0 {
return nil, nil //nolint:nilnil
}
case string:
if len(v) == 0 {
return nil, nil //nolint:nilnil
}
}
return v, nil
}