 public func ==(lhs: URI.UserInfo, rhs: URI.UserInfo) -> Bool {
     return lhs.hashValue == rhs.hashValue
 }
+
+
+public enum URIParseError : ErrorProtocol {
+    case invalidURI
+}
            userInfo = URI.parseUserInfoString(userInfoString)
        } else {
            userInfo = nil
        }
    }


        let u = parse_uri(string)

        if u.field_set & 1 != 0 {
            if URI.getSubstring(string, start: u.scheme_end, end: u.scheme_end + 1) == ":" {
                let string = URI.getSubstring(string, start: u.scheme_start, end: u.scheme_end)
                scheme = try String(percentEncoded: string)
            }
            else {
                scheme = nil
            }
        } else {
            scheme = nil
        }
