Boost logo

Boost :

From: Alan de Freitas (alandefreitas_at_[hidden])
Date: 2022-08-24 22:39:05


>
> 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<char,
    std::char_traits<char>,
        Allocator>
encode_to_string(
    string_view s,
    CharSet const& allowed,
    encode_opts const& opt = {},
    Allocator const& a = {});

-- 
Alan Freitas
https://github.com/alandefreitas

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk