diff options
| author | 2025-03-09 17:47:56 +0100 | |
|---|---|---|
| committer | 2025-12-01 22:08:04 +0100 | |
| commit | b1af8fd87760b34e3ff2fd3bda38f211815a0473 (patch) | |
| tree | 9317fad1a7ec298d7a8d2678e4e422953bbc6f33 /vendor/github.com/spf13/cast/slice.go | |
| parent | [chore] update URLs to forked source (diff) | |
| download | gotosocial-b1af8fd87760b34e3ff2fd3bda38f211815a0473.tar.xz | |
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/spf13/cast/slice.go')
| -rw-r--r-- | vendor/github.com/spf13/cast/slice.go | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/vendor/github.com/spf13/cast/slice.go b/vendor/github.com/spf13/cast/slice.go deleted file mode 100644 index e6a8328c6..000000000 --- a/vendor/github.com/spf13/cast/slice.go +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright © 2014 Steve Francia <spf@spf13.com>. -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file. - -package cast - -import ( - "fmt" - "reflect" - "strings" -) - -// ToSliceE casts any value to a []any type. -func ToSliceE(i any) ([]any, error) { - i, _ = indirect(i) - - var s []any - - switch v := i.(type) { - case []any: - // TODO: use slices.Clone - return append(s, v...), nil - case []map[string]any: - for _, u := range v { - s = append(s, u) - } - - return s, nil - default: - return s, fmt.Errorf(errorMsg, i, i, s) - } -} - -func toSliceE[T Basic](i any) ([]T, error) { - v, ok, err := toSliceEOk[T](i) - if err != nil { - return nil, err - } - - if !ok { - return nil, fmt.Errorf(errorMsg, i, i, []T{}) - } - - return v, nil -} - -func toSliceEOk[T Basic](i any) ([]T, bool, error) { - i, _ = indirect(i) - if i == nil { - return nil, true, fmt.Errorf(errorMsg, i, i, []T{}) - } - - switch v := i.(type) { - case []T: - // TODO: clone slice - return v, true, nil - } - - kind := reflect.TypeOf(i).Kind() - switch kind { - case reflect.Slice, reflect.Array: - s := reflect.ValueOf(i) - a := make([]T, s.Len()) - - for j := 0; j < s.Len(); j++ { - val, err := ToE[T](s.Index(j).Interface()) - if err != nil { - return nil, true, fmt.Errorf(errorMsg, i, i, []T{}) - } - - a[j] = val - } - - return a, true, nil - default: - return nil, false, nil - } -} - -// ToStringSliceE casts any value to a []string type. -func ToStringSliceE(i any) ([]string, error) { - if a, ok, err := toSliceEOk[string](i); ok { - if err != nil { - return nil, err - } - - return a, nil - } - - var a []string - - switch v := i.(type) { - case string: - return strings.Fields(v), nil - case any: - str, err := ToStringE(v) - if err != nil { - return nil, fmt.Errorf(errorMsg, i, i, a) - } - - return []string{str}, nil - default: - return nil, fmt.Errorf(errorMsg, i, i, a) - } -} |
