func makeStrings()

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)
	}
}