mirror of
https://github.com/vdemydiuk/mtapi.git
synced 2026-08-06 23:47:51 +00:00
Added thirdparty: boost library
This commit is contained in:
+186
@@ -0,0 +1,186 @@
|
||||
//
|
||||
// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
|
||||
// Copyright (c) 2022 Alan de Freitas (alandefreitas@gmail.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/url
|
||||
//
|
||||
|
||||
#ifndef BOOST_URL_IMPL_PARAMS_ENCODED_BASE_HPP
|
||||
#define BOOST_URL_IMPL_PARAMS_ENCODED_BASE_HPP
|
||||
|
||||
#include <boost/url/detail/params_iter_impl.hpp>
|
||||
|
||||
namespace boost {
|
||||
namespace urls {
|
||||
|
||||
#ifndef BOOST_URL_DOCS
|
||||
class params_ref;
|
||||
#endif
|
||||
|
||||
//------------------------------------------------
|
||||
|
||||
class params_encoded_base::iterator
|
||||
{
|
||||
detail::params_iter_impl it_;
|
||||
|
||||
friend class params_encoded_base;
|
||||
friend class params_encoded_ref;
|
||||
|
||||
iterator(detail::query_ref const& ref) noexcept;
|
||||
iterator(detail::query_ref const& ref, int) noexcept;
|
||||
iterator(
|
||||
detail::params_iter_impl const& it)
|
||||
: it_(it)
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
using value_type =
|
||||
params_encoded_base::value_type;
|
||||
using reference =
|
||||
params_encoded_base::reference;
|
||||
using pointer = reference;
|
||||
using difference_type = std::ptrdiff_t;
|
||||
using iterator_category =
|
||||
std::bidirectional_iterator_tag;
|
||||
|
||||
iterator() = default;
|
||||
iterator(iterator const&) = default;
|
||||
iterator& operator=(
|
||||
iterator const&) = default;
|
||||
|
||||
iterator&
|
||||
operator++() noexcept
|
||||
{
|
||||
it_.increment();
|
||||
return *this;
|
||||
}
|
||||
|
||||
iterator
|
||||
operator++(int) noexcept
|
||||
{
|
||||
auto tmp = *this;
|
||||
++*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
iterator&
|
||||
operator--() noexcept
|
||||
{
|
||||
it_.decrement();
|
||||
return *this;
|
||||
}
|
||||
|
||||
iterator
|
||||
operator--(int) noexcept
|
||||
{
|
||||
auto tmp = *this;
|
||||
--*this;
|
||||
return tmp;
|
||||
}
|
||||
|
||||
reference
|
||||
operator*() const
|
||||
{
|
||||
return it_.dereference();
|
||||
}
|
||||
|
||||
pointer
|
||||
operator->() const
|
||||
{
|
||||
return it_.dereference();
|
||||
}
|
||||
|
||||
friend
|
||||
bool
|
||||
operator==(
|
||||
iterator const& it0,
|
||||
iterator const& it1) noexcept
|
||||
{
|
||||
return it0.it_.equal(it1.it_);
|
||||
}
|
||||
|
||||
friend
|
||||
bool
|
||||
operator!=(
|
||||
iterator const& it0,
|
||||
iterator const& it1) noexcept
|
||||
{
|
||||
return ! it0.it_.equal(it1.it_);
|
||||
}
|
||||
};
|
||||
|
||||
//------------------------------------------------
|
||||
//
|
||||
// Observers
|
||||
//
|
||||
//------------------------------------------------
|
||||
|
||||
inline
|
||||
bool
|
||||
params_encoded_base::
|
||||
contains(
|
||||
pct_string_view key,
|
||||
ignore_case_param ic) const noexcept
|
||||
{
|
||||
return find_impl(
|
||||
begin().it_, key, ic) != end();
|
||||
}
|
||||
|
||||
inline
|
||||
auto
|
||||
params_encoded_base::
|
||||
find(
|
||||
pct_string_view key,
|
||||
ignore_case_param ic) const noexcept ->
|
||||
iterator
|
||||
{
|
||||
return find_impl(
|
||||
begin().it_, key, ic);
|
||||
}
|
||||
|
||||
inline
|
||||
auto
|
||||
params_encoded_base::
|
||||
find(
|
||||
iterator it,
|
||||
pct_string_view key,
|
||||
ignore_case_param ic) const noexcept ->
|
||||
iterator
|
||||
{
|
||||
return find_impl(
|
||||
it.it_, key, ic);
|
||||
}
|
||||
|
||||
inline
|
||||
auto
|
||||
params_encoded_base::
|
||||
find_last(
|
||||
pct_string_view key,
|
||||
ignore_case_param ic) const noexcept ->
|
||||
iterator
|
||||
{
|
||||
return find_last_impl(
|
||||
end().it_, key, ic);
|
||||
}
|
||||
|
||||
inline
|
||||
auto
|
||||
params_encoded_base::
|
||||
find_last(
|
||||
iterator it,
|
||||
pct_string_view key,
|
||||
ignore_case_param ic) const noexcept ->
|
||||
iterator
|
||||
{
|
||||
return find_last_impl(
|
||||
it.it_, key, ic);
|
||||
}
|
||||
|
||||
} // urls
|
||||
} // boost
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user