Line data Source code
1 : //
2 : // Copyright (c) 2019 Vinnie Falco (vinnie.falco@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_IMPL_ERROR_HPP
11 : #define BOOST_URL_IMPL_ERROR_HPP
12 :
13 : #include <type_traits>
14 :
15 : namespace boost {
16 :
17 : //-----------------------------------------------
18 : namespace system {
19 : template<>
20 : struct is_error_code_enum<::boost::urls::error>
21 : {
22 : static bool const value = true;
23 : };
24 : } // system
25 : //-----------------------------------------------
26 :
27 : namespace urls {
28 :
29 : namespace detail {
30 :
31 : struct BOOST_SYMBOL_VISIBLE
32 : error_cat_type
33 : : system::error_category
34 : {
35 : BOOST_URL_DECL
36 : const char* name(
37 : ) const noexcept override;
38 :
39 : BOOST_URL_DECL
40 : std::string message(
41 : int) const override;
42 :
43 : BOOST_URL_DECL
44 : char const* message(
45 : int, char*, std::size_t
46 : ) const noexcept override;
47 :
48 : BOOST_URL_DECL
49 : system::error_condition
50 : default_error_condition(
51 : int code) const noexcept override;
52 :
53 72 : BOOST_SYSTEM_CONSTEXPR error_cat_type() noexcept
54 72 : : error_category(0xbc15399d7a4ce829)
55 : {
56 72 : }
57 : };
58 :
59 : BOOST_URL_DECL extern
60 : error_cat_type error_cat;
61 :
62 : } // detail
63 :
64 : inline
65 : BOOST_SYSTEM_CONSTEXPR
66 : system::error_code
67 104 : make_error_code(
68 : error ev) noexcept
69 : {
70 : return system::error_code{
71 : static_cast<std::underlying_type<
72 : error>::type>(ev),
73 104 : detail::error_cat};
74 : }
75 :
76 : } // urls
77 : } // boost
78 :
79 : #endif
|