rewrite expand function

This commit is contained in:
filifa 2024-07-11 20:28:02 -05:00
parent babc02905d
commit 90ba6e6066
1 changed files with 8 additions and 18 deletions

View File

@ -36,6 +36,12 @@ type about struct {
CaptivatingIndex json.Number CaptivatingIndex json.Number
} }
func expand(arr []any, idx int) []any {
front := append(arr[:idx], nil)
all := append(front, arr[idx:])
return all
}
func setValue(obj any, key string, value any) error { func setValue(obj any, key string, value any) error {
var err error var err error
switch v := obj.(type) { switch v := obj.(type) {
@ -51,13 +57,7 @@ func setValue(obj any, key string, value any) error {
break break
} }
if len(v) <= idx { v = expand(v, idx)
arr := make([]any, idx+1)
for i, val := range v {
arr[i] = val
}
v = arr
}
v[idx] = value v[idx] = value
default: default:
err = errors.New("couldn't determine type") err = errors.New("couldn't determine type")
@ -66,16 +66,6 @@ func setValue(obj any, key string, value any) error {
return err return err
} }
func expand(v []any, idx int) {
if len(v) <= idx {
arr := make([]any, idx+1)
for i, val := range v {
arr[i] = val
}
v = arr
}
}
func patch(obj any, path string, value any) error { func patch(obj any, path string, value any) error {
var err error var err error
first, rest, found := strings.Cut(path, "/") first, rest, found := strings.Cut(path, "/")
@ -94,7 +84,7 @@ func patch(obj any, path string, value any) error {
break break
} }
expand(v, idx) v = expand(v, idx)
err = patch(v[idx], rest, value) err = patch(v[idx], rest, value)
default: default:
err = errors.New("couldn't determine type") err = errors.New("couldn't determine type")