package url import ( "errors" "strings" ) var errNoScheme = errors.New("no scheme") var errEmptyURL = errors.New("URL cannot be empty") // schemeFromURL returns the scheme from a URL string func SchemeFromURL(url string) (string, error) { if url == "" { return "", errEmptyURL } i := strings.Index(url, ":") // No : or : is the first character. if i < 1 { return "", errNoScheme } return url[0:i], nil }