|
Ada 3.3.0
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 |
References url().
|
defaultnoexcept |
References url().
|
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 ada_really_inline, get_protocol(), get_search(), has_credentials(), ada::url_base::has_opaque_path, ada::url_components::hash_start, ada::url_components::host_end, ada::url_components::host_start, ada::url_components::pathname_start, ada::url_components::port, ada::url_components::protocol_end, ada::url_components::search_start, and ada::url_components::username_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 625 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 639 of file url.cpp.
Referenced by ada::parser::parse_url_impl().
|
nodiscardnoexcept |
Definition at line 188 of file url-inl.h.
References ada_really_inline, 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 591 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 654 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 658 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 617 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 643 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.
References ada_really_inline.
Referenced by get_components(), get_href(), and to_string().
|
inlinenodiscardnoexcept |
|
nodiscardconstexproverridevirtualnoexcept |
Implements ada::url_base.
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
Definition at line 22 of file url-inl.h.
References ada_really_inline.
|
nodiscardconstexproverridevirtualnoexcept |
Implements ada::url_base.
Definition at line 164 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 848 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 913 of file url.cpp.
References ada::parse().
| bool ada::url::set_password | ( | std::string_view | input | ) |
Definition at line 800 of file url.cpp.
References ada::character_sets::USERINFO_PERCENT_ENCODE.
| bool ada::url::set_pathname | ( | std::string_view | input | ) |
Definition at line 880 of file url.cpp.
References ada::url_base::has_opaque_path.
| bool ada::url::set_port | ( | std::string_view | input | ) |
Definition at line 809 of file url.cpp.
References ada::url_base::is_valid.
| bool ada::url::set_protocol | ( | std::string_view | input | ) |
Definition at line 889 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 862 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 791 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 534 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 |
References ada::helpers::strip_trailing_spaces_from_opaque_path, and url().
Referenced by ada::helpers::strip_trailing_spaces_from_opaque_path.
|
friend |
References ada::parser::parse_url, and url().
Referenced by ada::parser::parse_url, and ada::parser::parse_url.
|
friend |
References ada::parser::parse_url.
|
friend |
References ada::parser::parse_url_impl, and url().
Referenced by ada::parser::parse_url_impl, and ada::parser::parse_url_impl.
|
friend |
References ada::parser::parse_url_impl.