1 -
//
 
2 -
// Copyright (c) 2022 alandefreitas (alandefreitas@gmail.com)
 
3 -
//
 
4 -
// Distributed under the Boost Software License, Version 1.0. (See accompanying
 
5 -
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
6 -
//
 
7 -
// Official repository: https://github.com/boostorg/url
 
8 -
//
 
9 -

 
10 -
#ifndef BOOST_URL_RFC_DETAIL_CHARSETS_HPP
 
11 -
#define BOOST_URL_RFC_DETAIL_CHARSETS_HPP
 
12 -

 
13 -
#include "boost/url/rfc/pchars.hpp"
 
14 -
#include "boost/url/rfc/sub_delim_chars.hpp"
 
15 -
#include "boost/url/rfc/unreserved_chars.hpp"
 
16 -

 
17 -
namespace boost {
 
18 -
namespace urls {
 
19 -
namespace detail {
 
20 -

 
21 -
struct empty_chars_t
 
22 -
{
 
23 -
    constexpr
 
24 -
    bool
 
25 -
    operator()(char) const noexcept
 
26 -
    {
 
27 -
        return false;
 
28 -
    }
 
29 -
};
 
30 -

 
31 -
constexpr
 
32 -
empty_chars_t
 
33 -
empty_chars{};
 
34 -

 
35 -
constexpr
 
36 -
auto
 
37 -
user_chars =
 
38 -
    unreserved_chars + sub_delim_chars;
 
39 -

 
40 -
constexpr
 
41 -
auto
 
42 -
password_chars =
 
43 -
    unreserved_chars + sub_delim_chars + ':';
 
44 -

 
45 -
constexpr
 
46 -
auto
 
47 -
userinfo_chars =
 
48 -
    password_chars;
 
49 -

 
50 -
constexpr
 
51 -
auto
 
52 -
host_chars =
 
53 -
    unreserved_chars + sub_delim_chars;
 
54 -

 
55 -
constexpr
 
56 -
auto
 
57 -
reg_name_chars =
 
58 -
    unreserved_chars + '-' + '.';
 
59 -

 
60 -
constexpr
 
61 -
auto
 
62 -
segment_chars =
 
63 -
    pchars;
 
64 -

 
65 -
constexpr
 
66 -
auto
 
67 -
path_chars =
 
68 -
    segment_chars + '/';
 
69 -

 
70 -
constexpr
 
71 -
auto
 
72 -
query_chars =
 
73 -
    pchars + '/' + '?' + '[' + ']';
 
74 -

 
75 -
constexpr
 
76 -
grammar::lut_chars
 
77 -
query_ignore_chars =
 
78 -
    "&=+";
 
79 -

 
80 -
constexpr
 
81 -
auto
 
82 -
param_key_chars = pchars
 
83 -
    + '/' + '?' + '[' + ']'
 
84 -
    - '&' - '=';
 
85 -

 
86 -
constexpr
 
87 -
auto
 
88 -
param_value_chars = pchars
 
89 -
    + '/' + '?'
 
90 -
    - '&';
 
91 -

 
92 -
constexpr
 
93 -
auto
 
94 -
fragment_chars =
 
95 -
    pchars + '/' + '?' + '#';
 
96 -

 
97 -
constexpr
 
98 -
auto
 
99 -
nocolon_pchars =
 
100 -
    pchars - ':';
 
101 -

 
102 -
} // detail
 
103 -
} // urls
 
104 -
} // boost
 
105 -

 
106 -
#endif