mirror of
https://github.com/stashapp/stash-box.git
synced 2026-02-04 12:19:30 -06:00
32 lines
443 B
Go
32 lines
443 B
Go
// nolint: revive
|
|
package utils
|
|
|
|
import (
|
|
"reflect"
|
|
)
|
|
|
|
type validator interface {
|
|
IsValid() bool
|
|
}
|
|
|
|
func validateEnum(value interface{}) bool {
|
|
v, ok := value.(validator)
|
|
if !ok {
|
|
// shouldn't happen
|
|
return false
|
|
}
|
|
|
|
return v.IsValid()
|
|
}
|
|
|
|
func ResolveEnumString(value string, out interface{}) bool {
|
|
if value == "" {
|
|
return false
|
|
}
|
|
|
|
outValue := reflect.ValueOf(out).Elem()
|
|
outValue.SetString(value)
|
|
|
|
return validateEnum(out)
|
|
}
|