OGLplus  (0.59.0) a C++ wrapper for rendering APIs

exception.hpp
Go to the documentation of this file.
1 
9 #ifndef EAGINE_LOGGING_TYPE_EXCEPTION_HPP
10 #define EAGINE_LOGGING_TYPE_EXCEPTION_HPP
11 
12 #include "../entry.hpp"
13 #include <stdexcept>
14 
15 namespace eagine {
16 //------------------------------------------------------------------------------
17 static inline auto
18 adapt_log_entry_arg(identifier name, const std::exception& value) {
19  return [name, value](logger_backend& backend) {
20  backend.add_string(
21  name, EAGINE_ID(Exception), string_view(value.what()));
22  };
23 }
24 //------------------------------------------------------------------------------
25 static inline auto
26 adapt_log_entry_arg(identifier name, const std::runtime_error& value) {
27  return [name, value](logger_backend& backend) {
28  backend.add_string(
29  name, EAGINE_ID(RuntmError), string_view(value.what()));
30  };
31 }
32 //------------------------------------------------------------------------------
33 static inline auto
34 adapt_log_entry_arg(identifier name, const std::system_error& value) {
35  return [name, value](logger_backend& backend) {
36  backend.add_string(
37  name, EAGINE_ID(SystmError), string_view(value.what()));
38  backend.add_string(
39  EAGINE_ID(category),
40  EAGINE_ID(ErrorCtgry),
41  string_view(value.code().category().name()));
42  };
43 }
44 //------------------------------------------------------------------------------
45 } // namespace eagine
46 
47 #endif // EAGINE_LOGGING_TYPE_EXCEPTION_HPP
basic_string_span< const char > string_view
Alias for const string views.
Definition: string_span.hpp:116
#define EAGINE_ID(NAME)
Macro for constructing instances of eagine::identifier.
Definition: identifier.hpp:353
Common code is placed in this namespace.
Definition: eagine.hpp:21
basic_identifier< 10, 6, default_identifier_char_set, identifier_t > identifier
Default identifier type used throughout the project.
Definition: identifier.hpp:346

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).