Img2Num C
API Documentation
img2num_error_t.cpp
Go to the documentation of this file.
2 
3 #include <cstring>
4 
5 #include "img2num/Error.h"
6 
7 static inline img2num_error_t cpp_error_to_c_error(img2num::Error cpp_error) {
8  static_assert(static_cast<int>(img2num::Error::OK) == IMG2NUM_OK, "enum mismatch");
9  static_assert(static_cast<int>(img2num::Error::BAD_ALLOC) == IMG2NUM_ERROR_BAD_ALLOC,
10  "enum mismatch");
11  static_assert(
12  static_cast<int>(img2num::Error::INVALID_ARGUMENT) == IMG2NUM_ERROR_INVALID_ARGUMENT,
13  "enum mismatch");
14  static_assert(static_cast<int>(img2num::Error::RUNTIME) == IMG2NUM_ERROR_RUNTIME,
15  "enum mismatch");
16  static_assert(static_cast<int>(img2num::Error::UNKNOWN) == IMG2NUM_ERROR_UNKNOWN,
17  "enum mismatch");
18 
19  return static_cast<img2num_error_t>(cpp_error);
20 }
21 
22 extern "C" {
24  const img2num::Error cpp_err{img2num::get_last_error()};
25  return cpp_error_to_c_error(cpp_err);
26 }
27 
29  static thread_local std::string msg;
30  msg = img2num::get_last_error_message();
31  return msg.c_str();
32 }
33 
35  img2num::clear_last_error();
36 }
37 }
img2num_error_t img2num_get_last_error()
void img2num_clear_last_error()
const char * img2num_get_last_error_message()
img2num_error_t
@ IMG2NUM_ERROR_RUNTIME
@ IMG2NUM_ERROR_BAD_ALLOC
@ IMG2NUM_OK
@ IMG2NUM_ERROR_INVALID_ARGUMENT
@ IMG2NUM_ERROR_UNKNOWN