-
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Description
This is a master-issue for collecting requirements for improving the current URI
class, reduce its dependency on uriparser
, and prepare it for extracting it outside of this project:
- Add a
URI::URI(std::istream &)
constructor #800 - Add a
[[nodiscard]] auto URI::userinfo() const -> std::optional<std::string_view>
method #805 - Refactor
URI::path()
to return each component in the path as astd::span
ofstd::string
#807 - Add a
URI::path_string()
that returns the entire path as a string - Extract the
URI::escape
andURI::unescape
static methods into a separate component (uri/percent
?):
auto encode_character(const char character, std::ostream &stream) -> void;
auto encode_string(std::istream &stream, std::ostream &output, const std::set<char> &whitelist) -> void;
auto encode_string(std::istream &stream, std::ostream &output) -> void;
auto decode_character(std::istream &stream, const std::uint64_t column = 0) -> char;
auto decode_string(std::istream &stream, std::ostream &output, const std::uint64_t column = 0) -> void;
- Add setter methods for every URI component #811
- NOTE: After this one, revise the usage of URI across JSON Toolkit, as many workaround we do are for mutation, and can be simplified
On uriparser
:
- Stop storing a
UriUriA
struct. Parse on the constructor and extract every component as a separate private member on the class, and operate on those from then on. If needed, construct back toUriUriA
on the spot
Metadata
Metadata
Assignees
Labels
No labels