Other issues were the documentation, the confusion about encoded and decoded data
We are tracking these here:
https://github.com/CPPAlliance/url/issues/438
https://github.com/CPPAlliance/url/issues/448
and, in case anyone wants to contribute, these are the new functions, and
types we are considering:
pct_encoded_view -> decode_view
pct_decode_opts -> decode_opts
validate_pct_encoding -> (remove)
pct_decode_bytes_unchecked -> (remove)
pct_decode_unchecked -> decode_unchecked (private)
pct_decode becomes a single function to validate and decode ->
template< class CharSet = grammar::all_chars_t >
auto
decode(
string_view s,
CharSet const& allowed = {},
decode_opts const& opt = {}) ->
result< decode_view >
The functions for encoding are only renamed:
pct_encode_opts -> encode_opts
pct_encode_bytes -> encoded_size
template <class CharSet>
std::size_t
encoded_size(
string_view s,
CharSet const& allowed,
encode_opts const& opt = {}) noexcept;
pct_encode -> encode
template <class CharSet>
std::size_t
encode(
char* dest,
char const* end,
string_view s,
CharSet const& allowed,
encode_opts const& opt = {});
pct_encode_to_string -> encode_to_string
template<
class CharSet,
class Allocator =
std::allocator<char> >
std::basic_string