123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- //
- // Copyright (c) 2019 Vinnie Falco (vinnie.falco@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_GRAMMAR_IMPL_ERROR_HPP
- #define BOOST_URL_GRAMMAR_IMPL_ERROR_HPP
- #include <type_traits>
- namespace boost {
- namespace system {
- template<>
- struct is_error_code_enum<
- ::boost::urls::grammar::error>
- {
- static bool const value = true;
- };
- template<>
- struct is_error_condition_enum<
- ::boost::urls::grammar::condition>
- {
- static bool const value = true;
- };
- } // system
- } // boost
- namespace boost {
- namespace urls {
- namespace grammar {
- namespace detail {
- struct BOOST_SYMBOL_VISIBLE
- error_cat_type
- : system::error_category
- {
- BOOST_URL_DECL
- const char* name(
- ) const noexcept override;
- BOOST_URL_DECL
- std::string message(
- int) const override;
- BOOST_URL_DECL
- char const* message(
- int, char*, std::size_t
- ) const noexcept override;
- BOOST_URL_DECL
- system::error_condition
- default_error_condition(
- int code) const noexcept override;
- BOOST_SYSTEM_CONSTEXPR error_cat_type() noexcept
- : error_category(0x0536e50a30f9e9f2)
- {
- }
- };
- struct BOOST_SYMBOL_VISIBLE
- condition_cat_type
- : system::error_category
- {
- BOOST_URL_DECL
- const char* name(
- ) const noexcept override;
- BOOST_URL_DECL
- std::string message(
- int) const override;
- BOOST_URL_DECL
- char const* message(
- int, char*, std::size_t
- ) const noexcept override;
- BOOST_SYSTEM_CONSTEXPR condition_cat_type()
- : error_category(0x0536e50a30f9e9f2)
- {
- }
- };
- BOOST_URL_DECL extern
- error_cat_type error_cat;
- BOOST_URL_DECL extern
- condition_cat_type condition_cat;
- } // detail
- inline
- system::error_code
- make_error_code(
- error ev) noexcept
- {
- return system::error_code{
- static_cast<std::underlying_type<
- error>::type>(ev),
- detail::error_cat};
- }
- inline
- system::error_condition
- make_error_condition(
- condition c) noexcept
- {
- return system::error_condition{
- static_cast<std::underlying_type<
- condition>::type>(c),
- detail::condition_cat};
- }
- } // grammar
- } // urls
- } // boost
- #endif
|