// Copyright 2021 yuzu Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include namespace Shader { class LogicError : public std::logic_error { public: template LogicError(const char* message, Args&&... args) : std::logic_error{fmt::format(message, std::forward(args)...)} {} }; class RuntimeError : public std::runtime_error { public: template RuntimeError(const char* message, Args&&... args) : std::runtime_error{fmt::format(message, std::forward(args)...)} {} }; class NotImplementedException : public std::logic_error { public: template NotImplementedException(const char* message, Args&&... args) : std::logic_error{fmt::format(message, std::forward(args)...)} {} }; class InvalidArgument : public std::invalid_argument { public: template InvalidArgument(const char* message, Args&&... args) : std::invalid_argument{fmt::format(message, std::forward(args)...)} {} }; } // namespace Shader