in lib/http.go [907:937]
func makeStrings(val reflect.Value) (reflect.Value, error) {
iface := val.Interface()
switch iface := iface.(type) {
case []string:
return reflect.ValueOf(iface), nil
case []types.String:
dst := make([]string, len(iface))
for i, s := range iface {
dst[i] = string(s)
}
return reflect.ValueOf(dst), nil
case ref.Val:
v, err := iface.ConvertToNative(reflectStringSliceType)
if err != nil {
return reflect.Value{}, err
}
return reflect.ValueOf(v), nil
case []ref.Val:
dst := make([]string, len(iface))
for i, s := range iface {
v, err := s.ConvertToNative(reflectStringType)
if err != nil {
return reflect.Value{}, err
}
dst[i] = v.(string)
}
return reflect.ValueOf(dst), nil
default:
return reflect.Value{}, fmt.Errorf("invalid type: %T", iface)
}
}