Ada 2.9.2
Fast spec-compliant URL parser
|
Generic URL struct reliant on std::string instantiation. More...
#include <url.h>
Public Member Functions | |
url ()=default | |
url (const url &u)=default | |
url (url &&u) noexcept=default | |
url & | operator= (url &&u) noexcept=default |
url & | operator= (const url &u)=default |
~url () override=default | |
bool | has_empty_hostname () const noexcept |
bool | has_port () const noexcept |
bool | has_hostname () const noexcept |
bool | has_valid_domain () const noexcept override |
std::string | to_string () const override |
ada_really_inline std::string | get_href () const noexcept |
std::string | get_origin () const noexcept override |
std::string | get_protocol () const noexcept |
std::string | get_host () const noexcept |
std::string | get_hostname () const noexcept |
constexpr std::string_view | get_pathname () const noexcept |
ada_really_inline size_t | get_pathname_length () const noexcept |
std::string | get_search () const noexcept |
const std::string & | get_username () const noexcept |
bool | set_username (std::string_view input) |
bool | set_password (std::string_view input) |
bool | set_port (std::string_view input) |
void | set_hash (std::string_view input) |
void | set_search (std::string_view input) |
bool | set_pathname (std::string_view input) |
bool | set_host (std::string_view input) |
bool | set_hostname (std::string_view input) |
bool | set_protocol (std::string_view input) |
bool | set_href (std::string_view input) |
const std::string & | get_password () const noexcept |
std::string | get_port () const noexcept |
std::string | get_hash () const noexcept |
ada_really_inline bool | has_credentials () const noexcept |
ada_really_inline ada::url_components | get_components () const noexcept |
constexpr bool | has_hash () const noexcept override |
constexpr bool | has_search () const noexcept override |
Public Member Functions inherited from ada::url_base | |
virtual | ~url_base ()=default |
ada_really_inline constexpr bool | is_special () const noexcept |
Friends | |
ada::url | ada::parser::parse_url (std::string_view, const ada::url *) |
ada::url_aggregator | ada::parser::parse_url (std::string_view, const ada::url_aggregator *) |
void | ada::helpers::strip_trailing_spaces_from_opaque_path (ada::url &url) noexcept |
ada::url | ada::parser::parse_url_impl (std::string_view, const ada::url *) |
ada::url_aggregator | ada::parser::parse_url_impl (std::string_view, const ada::url_aggregator *) |
Additional Inherited Members | |
Public Attributes inherited from ada::url_base | |
bool | is_valid {true} |
bool | has_opaque_path {false} |
url_host_type | host_type = url_host_type::DEFAULT |
Generic URL struct reliant on std::string instantiation.
To disambiguate from a valid URL string it can also be referred to as a URL record. A URL is a struct that represents a universal identifier. Unlike the url_aggregator, the ada::url represents the different components of a parsed URL as independent std::string instances. This makes the structure heavier and more reliant on memory allocations. When getting components from the parsed URL, a new std::string is typically constructed.
|
default |
|
default |
|
defaultnoexcept |
|
overridedefault |
|
nodiscardnoexcept |
Useful for implementing efficient serialization for the URL.
https://user:pass@example.com:1234/foo/bar?baz#quux | | | | ^^^^| | | | | | | | | | ----- hash_start | | | | | |
------— search_start | | | | | ----------------- pathname_start | | | |
------------------— port | | | ----------------------- host_end | |
-------------------------------— host_start | --------------------------------------- username_end
------------------------------------------— protocol_end
Inspired after servo/url
Definition at line 50 of file url-inl.h.
References get_protocol(), get_search(), has_credentials(), ada::url_base::has_opaque_path, and ada::url_components::protocol_end.
|
nodiscardnoexcept |
Return U+0023 (#), followed by this's URL's fragment.
|
nodiscardnoexcept |
Return url's host, serialized, followed by U+003A (:) and url's port, serialized. When there is no host, this function returns the empty string.
Definition at line 623 of file url.cpp.
References get_port().
Referenced by get_origin().
|
nodiscardnoexcept |
Return this's URL's host, serialized. When there is no host, this function returns the empty string.
Definition at line 637 of file url.cpp.
Referenced by ada::parser::parse_url_impl().
|
nodiscardnoexcept |
Definition at line 187 of file url-inl.h.
References get_password(), get_port(), get_protocol(), has_credentials(), and ada::url_base::has_opaque_path.
Referenced by ada::parser::parse_url_impl().
|
nodiscardoverridevirtualnoexcept |
The origin getter steps are to return the serialization of this's URL's origin. [HTML]
Implements ada::url_base.
Definition at line 589 of file url.cpp.
References ada::scheme::FILE, get_host(), get_protocol(), ada::scheme::HTTP, ada::scheme::HTTPS, ada::url_base::is_special(), and ada::parse().
|
nodiscardnoexcept |
The password getter steps are to return this's URL's password.
Definition at line 652 of file url.cpp.
Referenced by get_href().
|
nodiscardconstexprnoexcept |
The pathname getter steps are to return the result of URL path serializing this's URL.
Definition at line 46 of file url-inl.h.
Referenced by ada::parser::parse_url_impl().
|
nodiscardnoexcept |
Compute the pathname length in bytes without instantiating a view or a string.
|
nodiscardnoexcept |
Return this's URL's port, serialized.
Definition at line 656 of file url.cpp.
Referenced by get_host(), and get_href().
|
nodiscardnoexcept |
The protocol getter steps are to return this's URL's scheme, followed by U+003A (:).
Definition at line 615 of file url.cpp.
References ada::url_base::is_special(), and ada::scheme::details::is_special_list.
Referenced by get_components(), get_href(), get_origin(), ada::parser::parse_url_impl(), and to_string().
|
nodiscardnoexcept |
Return U+003F (?), followed by this's URL's query.
Definition at line 641 of file url.cpp.
Referenced by get_components().
|
nodiscardnoexcept |
The username getter steps are to return this's URL's username.
|
nodiscardnoexcept |
A URL includes credentials if its username or password is not the empty string.
Definition at line 19 of file url-inl.h.
Referenced by get_components(), get_href(), and to_string().
|
inlinenodiscardnoexcept |
|
nodiscardconstexproverridevirtualnoexcept |
Implements ada::url_base.
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
nodiscardconstexproverridevirtualnoexcept |
Implements ada::url_base.
Definition at line 163 of file url-inl.h.
Referenced by to_string().
|
nodiscardoverridevirtualnoexcept |
Returns true if this URL has a valid domain as per RFC 1034 and corresponding specifications. Among other things, it requires that the domain string has fewer than 255 octets.
Implements ada::url_base.
void ada::url::set_hash | ( | std::string_view | input | ) |
This function always succeeds.
Definition at line 805 of file url.cpp.
References ada::character_sets::FRAGMENT_PERCENT_ENCODE.
bool ada::url::set_host | ( | std::string_view | input | ) |
bool ada::url::set_hostname | ( | std::string_view | input | ) |
bool ada::url::set_href | ( | std::string_view | input | ) |
Definition at line 870 of file url.cpp.
References ada::parse().
bool ada::url::set_password | ( | std::string_view | input | ) |
Definition at line 766 of file url.cpp.
References ada::character_sets::USERINFO_PERCENT_ENCODE.
bool ada::url::set_pathname | ( | std::string_view | input | ) |
Definition at line 837 of file url.cpp.
References ada::url_base::has_opaque_path.
bool ada::url::set_port | ( | std::string_view | input | ) |
Definition at line 775 of file url.cpp.
References ada::url_base::is_valid.
bool ada::url::set_protocol | ( | std::string_view | input | ) |
Definition at line 846 of file url.cpp.
References ada::checkers::is_alpha().
void ada::url::set_search | ( | std::string_view | input | ) |
This function always succeeds.
Definition at line 819 of file url.cpp.
References ada::url_base::is_special(), ada::character_sets::QUERY_PERCENT_ENCODE, and ada::character_sets::SPECIAL_QUERY_PERCENT_ENCODE.
bool ada::url::set_username | ( | std::string_view | input | ) |
Definition at line 757 of file url.cpp.
References ada::character_sets::USERINFO_PERCENT_ENCODE.
|
nodiscardoverridevirtual |
Returns a JSON string representation of this URL.
Implements ada::url_base.
Definition at line 533 of file url.cpp.
References get_protocol(), has_credentials(), ada::url_base::has_opaque_path, has_search(), and ada::url_base::is_valid.
Referenced by ada::operator<<().
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |