26 lines
452 B
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)
|
|
}
|
|
}
|