| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 | //// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)//// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//// Official repository: https://github.com/boostorg/beast//#ifndef BOOST_BEAST_HTTP_DETAIL_RFC7230_HPP#define BOOST_BEAST_HTTP_DETAIL_RFC7230_HPP#include <boost/beast/core/string.hpp>#include <iterator>#include <utility>namespace boost {namespace beast {namespace http {namespace detail {BOOST_BEAST_DECLboolis_digit(char c);BOOST_BEAST_DECLcharis_alpha(char c);BOOST_BEAST_DECLcharis_text(char c);BOOST_BEAST_DECLcharis_token_char(char c);BOOST_BEAST_DECLcharis_qdchar(char c);BOOST_BEAST_DECLcharis_qpchar(char c);// converts to lower case,// returns 0 if not a valid text char//BOOST_BEAST_DECLcharto_value_char(char c);// VFALCO TODO Make this return unsigned?BOOST_BEAST_DECLstd::int8_tunhex(char c);BOOST_BEAST_DECLstring_viewtrim(string_view s);struct param_iter{    using iter_type = string_view::const_iterator;    iter_type it;    iter_type first;    iter_type last;    std::pair<string_view, string_view> v;    bool    empty() const    {        return first == it;    }    BOOST_BEAST_DECL    void    increment();};/*    #token = [ ( "," / token )   *( OWS "," [ OWS token ] ) ]*/struct opt_token_list_policy{    using value_type = string_view;    BOOST_BEAST_DECL    bool    operator()(value_type& v,        char const*& it, string_view s) const;};} // detail} // http} // beast} // boost#ifdef BOOST_BEAST_HEADER_ONLY#include <boost/beast/http/detail/rfc7230.ipp>#endif#endif
 |