VTFParser
Simple and modern library for parsing the Valve Texture Format
Loading...
Searching...
No Matches
errors.hpp
1#pragma once
2
3#include <cstdint>
4#include <stdexcept>
5
6#define ERROR_FOR_REASON(reason) \
7 class reason : public Error { \
8 public: \
9 explicit reason(const char* message) : Error(Reason::reason, message) {} \
10 };
11
12namespace VtfParser::Errors {
13 enum class Reason : uint8_t {
14 InvalidHeader,
15 UnsupportedVersion,
16 OutOfBoundsAccess,
17 };
18
19 class Error : public std::runtime_error {
20 public:
21 Error(Reason reason, const char* message) : reason(reason), std::runtime_error(message) {}
22
23 Reason getReason() {
24 return reason;
25 }
26
27 private:
28 Reason reason;
29 };
30
31 ERROR_FOR_REASON(InvalidHeader);
32 ERROR_FOR_REASON(UnsupportedVersion);
33 ERROR_FOR_REASON(OutOfBoundsAccess);
34}
35
36#undef ERROR_FOR_REASON
Definition: errors.hpp:19