58 std::string username{};
65 std::string password{};
71 std::optional<std::string> host{};
78 std::optional<uint16_t> port{};
91 std::optional<std::string> query{};
99 std::optional<std::string> hash{};
104 [[nodiscard]] inline
bool has_port() const noexcept;
106 [[nodiscard]] inline
bool has_hostname() const noexcept;
112 [[nodiscard]] std::
string to_string() const override;
126 [[nodiscard]] std::
string get_origin() const noexcept override;
134 [[nodiscard]] std::
string get_protocol() const noexcept;
143 [[nodiscard]] std::
string get_host() const noexcept;
151 [[nodiscard]] std::
string get_hostname() const noexcept;
159 [[nodiscard]] constexpr std::string_view
get_pathname() const noexcept;
174 [[nodiscard]] std::
string get_search() const noexcept;
181 [[nodiscard]] const std::
string &
get_username() const noexcept;
199 bool set_port(std::string_view input);
205 void set_hash(std::string_view input);
223 bool set_host(std::string_view input);
240 bool set_href(std::string_view input);
247 [[nodiscard]] const std::
string &
get_password() const noexcept;
254 [[nodiscard]] std::
string get_port() const noexcept;
261 [[nodiscard]] std::
string get_hash() const noexcept;
293 [[nodiscard]] constexpr
bool has_hash() const noexcept override;
295 [[nodiscard]] constexpr
bool has_search() const noexcept override;
310 inline
void update_unencoded_base_hash(std::string_view input);
311 inline
void update_base_hostname(std::string_view input);
312 inline
void update_base_search(std::string_view input,
313 const uint8_t query_percent_encode_set[]);
314 inline
void update_base_search(std::
optional<std::
string> &&input);
315 inline
void update_base_pathname(std::string_view input);
316 inline
void update_base_username(std::string_view input);
317 inline
void update_base_password(std::string_view input);
318 inline
void update_base_port(std::
optional<uint16_t> input);
325 template <
bool override_hostname = false>
326 bool set_host_or_hostname(std::string_view input);
332 [[nodiscard]]
bool parse_ipv4(std::string_view input);
338 [[nodiscard]]
bool parse_ipv6(std::string_view input);
344 [[nodiscard]]
bool parse_opaque_host(std::string_view input);
355 std::
string non_special_scheme{};
361 [[nodiscard]]
inline bool cannot_have_credentials_or_port()
const;
364 std::string_view view,
bool check_trailing_content)
noexcept override;
367 return this->parse_port(view,
false);
380 template <
bool has_state_overr
ide = false>
383 constexpr void clear_pathname()
override;
384 constexpr void clear_search()
override;
385 constexpr void set_protocol_as_file();
404 inline void set_scheme(std::string &&new_scheme)
noexcept;
410 constexpr void copy_scheme(
ada::url &&u)
noexcept;
416 constexpr void copy_scheme(
const ada::url &u);
420inline std::ostream &
operator<<(std::ostream &out,
const ada::url &u);
Declarations for URL specific checkers used within Ada.
Common definitions for cross-platform compiler support.
#define ada_really_inline
Definitions for helper functions used within Ada.
Includes the definitions for helper functions.
Includes the definitions for supported parsers.
std::ostream & operator<<(std::ostream &out, const ada::url &u)
Base class of URL implementations.
Generic URL struct reliant on std::string instantiation.
void set_hash(std::string_view input)
std::string get_search() const noexcept
bool set_hostname(std::string_view input)
bool set_host(std::string_view input)
ada_really_inline ada::url_components get_components() const noexcept
url(url &&u) noexcept=default
bool has_empty_hostname() const noexcept
bool has_port() const noexcept
ada_really_inline bool has_credentials() const noexcept
friend ada::url ada::parser::parse_url(std::string_view, const ada::url *)
bool set_password(std::string_view input)
url & operator=(url &&u) noexcept=default
url & operator=(const url &u)=default
void set_search(std::string_view input)
ada_really_inline size_t get_pathname_length() const noexcept
bool set_href(std::string_view input)
ada_really_inline std::string get_href() const noexcept
bool has_hostname() const noexcept
bool set_username(std::string_view input)
constexpr std::string_view get_pathname() const noexcept
url(const url &u)=default
std::string get_host() const noexcept
std::string get_hash() const noexcept
bool set_pathname(std::string_view input)
std::string get_origin() const noexcept override
friend void ada::helpers::strip_trailing_spaces_from_opaque_path(ada::url &url) noexcept
std::string get_hostname() const noexcept
friend ada::url ada::parser::parse_url_impl(std::string_view, const ada::url *)
const std::string & get_password() const noexcept
bool set_protocol(std::string_view input)
std::string get_port() const noexcept
const std::string & get_username() const noexcept
bool set_port(std::string_view input)
constexpr bool has_search() const noexcept override
std::string to_string() const override
std::string get_protocol() const noexcept
constexpr bool has_hash() const noexcept override
bool has_valid_domain() const noexcept override
Declaration for the basic URL definitions.
Declaration for the URL Components.