Files
pmomusic/pmoupnp/devices/services/statevariables/utils_uri.go

26 lines
452 B
Go

package statevariables
import (
"fmt"
"net/url"
)
// toURI converts a value to *url.URL if possible.
func toURI(v interface{}) (*url.URL, error) {
switch val := v.(type) {
case *url.URL:
// Already a URL
return val, nil
case string:
u, err := url.Parse(val)
if err != nil {
return nil, fmt.Errorf("invalid URI string %q: %v", val, err)
}
return u, nil
default:
return nil, fmt.Errorf("cannot convert type %T to URI", v)
}
}