func mapStrings()

in lib/limit.go [144:169]


func mapStrings(val ref.Val) (map[string][]string, error) {
	iface := val.Value()
	switch iface := iface.(type) {
	case http.Header:
		return iface, nil
	case url.Values:
		return iface, nil
	case map[string][]string:
		return iface, nil
	case map[ref.Val]ref.Val:
		val := types.DefaultTypeAdapter.NativeToValue(iface)
		v, err := val.ConvertToNative(reflectMapStringStringSliceType)
		if err != nil {
			return nil, err
		}
		return v.(map[string][]string), nil
	case ref.Val:
		v, err := iface.ConvertToNative(reflectMapStringStringSliceType)
		if err != nil {
			return nil, err
		}
		return v.(map[string][]string), nil
	default:
		return nil, fmt.Errorf("invalid type: %T", iface)
	}
}