diff options
Diffstat (limited to 'toolsrc/src/vcpkg_Checks.cpp')
| -rw-r--r-- | toolsrc/src/vcpkg_Checks.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/toolsrc/src/vcpkg_Checks.cpp b/toolsrc/src/vcpkg_Checks.cpp new file mode 100644 index 000000000..d5433b1f5 --- /dev/null +++ b/toolsrc/src/vcpkg_Checks.cpp @@ -0,0 +1,41 @@ +#include "vcpkg_Checks.h" + +#include <stdexcept> +#include "vcpkg_System.h" + +namespace vcpkg {namespace Checks +{ + void unreachable() + { + System::println(System::color::error, "Error: Unreachable code was reached"); + exit(EXIT_FAILURE); + } + + void exit_with_message(const char* errorMessage) + { + System::println(System::color::error, errorMessage); + exit(EXIT_FAILURE); + } + + void throw_with_message(const char* errorMessage) + { + throw std::runtime_error(errorMessage); + } + + void check_throw(bool expression, const char* errorMessage) + { + if (!expression) + { + throw_with_message(errorMessage); + } + } + + void check_exit(bool expression, const char* errorMessage) + { + if (!expression) + { + System::println(System::color::error, errorMessage); + exit(EXIT_FAILURE); + } + } +}} |
