HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Library/include/boost/url/impl/parse_query.ipp
//
// Copyright (c) 2019 Vinnie Falco ([email protected])
// Copyright (c) 2022 Alan de Freitas ([email protected])
//
// 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/CPPAlliance/url
//

#ifndef BOOST_URL_IMPL_PARSE_QUERY_IPP
#define BOOST_URL_IMPL_PARSE_QUERY_IPP

#include <boost/url/parse_query.hpp>
#include <boost/url/rfc/query_rule.hpp>
#include <boost/url/grammar/parse.hpp>

#include <boost/url/error.hpp>

namespace boost {
namespace urls {

result<params_encoded_view>
parse_query(string_view s) noexcept
{
    // Handle empty strings differently.
    // We produce {}, versus empty but
    // present query in URL (e.g. "http:?")
    // which produces {{"", none}}.
    if(s.empty())
        return params_encoded_view(
            detail::query_ref(
                s.data(), 0, 0));
    auto rv = grammar::parse(s, query_rule);
    if(! rv)
        return rv.error();
    return params_encoded_view(
        detail::query_ref(
            s.data(), s.size(), rv->size()));
}

} // urls
} // boost

#endif