package redisv2 import ( "errors" "fmt" ) var ErrUnEvenResults = errors.New("uneven number of results in interface array") // Except an even number of results in the array func InterfaceArrayToStringMap(array []interface{})(result map[string]string, err error){ if len(array) %2 != 0 { err = ErrUnEvenResults return } result = make(map[string]string) for x := 0; x < len(array); x += 2 { key, ok := array[x].(string) if !ok { err =errors.Join(err, fmt.Errorf("failed to convert key %v to string", array[x])) continue } value, ok := array[x+1].(string) if !ok { err =errors.Join(err, fmt.Errorf("failed to convert value %v to string", array[x+1])) continue } result[key] = value } return }