From 2d48a7b4d0666ad16d03a22d85712617a0849046 Mon Sep 17 00:00:00 2001
From: ReinUsesLisp <reinuseslisp@airmail.cc>
Date: Sat, 9 Jan 2021 03:30:07 -0300
Subject: shader: Initial recompiler work

---
 src/shader_recompiler/exception.h | 42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 src/shader_recompiler/exception.h

(limited to 'src/shader_recompiler/exception.h')

diff --git a/src/shader_recompiler/exception.h b/src/shader_recompiler/exception.h
new file mode 100644
index 0000000000..6fe620801d
--- /dev/null
+++ b/src/shader_recompiler/exception.h
@@ -0,0 +1,42 @@
+// Copyright 2021 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <stdexcept>
+#include <utility>
+
+#include <fmt/format.h>
+
+namespace Shader {
+
+class LogicError : public std::logic_error {
+public:
+    template <typename... Args>
+    LogicError(const char* message, Args&&... args)
+        : std::logic_error{fmt::format(message, std::forward<Args>(args)...)} {}
+};
+
+class RuntimeError : public std::runtime_error {
+public:
+    template <typename... Args>
+    RuntimeError(const char* message, Args&&... args)
+        : std::runtime_error{fmt::format(message, std::forward<Args>(args)...)} {}
+};
+
+class NotImplementedException : public std::logic_error {
+public:
+    template <typename... Args>
+    NotImplementedException(const char* message, Args&&... args)
+        : std::logic_error{fmt::format(message, std::forward<Args>(args)...)} {}
+};
+
+class InvalidArgument : public std::invalid_argument {
+public:
+    template <typename... Args>
+    InvalidArgument(const char* message, Args&&... args)
+        : std::invalid_argument{fmt::format(message, std::forward<Args>(args)...)} {}
+};
+
+} // namespace Shader
-- 
cgit v1.2.3-70-g09d2