std::string URL::userInfo() const { if (hasUserInfo()) return _buf.substr(_parser.field_data[UF_USERINFO].off, _parser.field_data[UF_USERINFO].len); return std::string(); }
void URL::updateUserInfo(const std::string& info) { if (!hasUserInfo()) throw std::runtime_error("Cannot update invalid URL"); std::string tmp(str()); util::replaceInPlace(tmp, this->userInfo(), info); parse(tmp); }
std::string URL::authority() const { std::string res; if (hasUserInfo()) { res.append(userInfo()); res.append("@"); } res.append(host()); if (hasPort()) { res.append(":"); res.append(util::itostr<std::uint16_t>(port())); } return res; }