aboutsummaryrefslogtreecommitdiff
path: root/src/platform/Base.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-03 20:12:12 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-03 20:12:12 +0800
commit76746163e04555eb129fc2590ee8b0312fad872c (patch)
tree673c606c245456b13510caadaa37b67b19b6973a /src/platform/Base.cpp
parent06f16479ae1b727252404b763b60c924e3fe7903 (diff)
downloadcru-76746163e04555eb129fc2590ee8b0312fad872c.tar.gz
cru-76746163e04555eb129fc2590ee8b0312fad872c.tar.bz2
cru-76746163e04555eb129fc2590ee8b0312fad872c.zip
Merge platform/Exception.h Check.h to Base.h.
Diffstat (limited to 'src/platform/Base.cpp')
-rw-r--r--src/platform/Base.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/platform/Base.cpp b/src/platform/Base.cpp
index c660ad13..fd1dec4e 100644
--- a/src/platform/Base.cpp
+++ b/src/platform/Base.cpp
@@ -1,5 +1,35 @@
#include "cru/platform/Base.h"
+#include <format>
+#include <optional>
+#include <string_view>
+
namespace cru::platform {
std::string IPlatformResource::GetDebugString() { return {}; }
+
+PlatformNotMatchException::PlatformNotMatchException(
+ std::string resource_platform, std::string target_platform,
+ std::optional<std::string_view> additional_message)
+ : PlatformException(std::format(
+ "Resource platform '{}' does not match target platform '{}'.",
+ resource_platform_, target_platform_)),
+ resource_platform_(std::move(resource_platform)),
+ target_platform_(std::move(target_platform)) {
+ AppendMessage(additional_message);
+}
+
+PlatformNotMatchException::~PlatformNotMatchException() {}
+
+PlatformUnsupportedException::PlatformUnsupportedException(
+ std::string platform, std::string operation,
+ std::optional<std::string_view> additional_message)
+ : PlatformException(
+ std::format("Operation '{}' is not supported on platform '{}'.",
+ operation, platform)),
+ platform_(std::move(platform)),
+ operation_(std::move(operation)) {
+ AppendMessage(additional_message);
+}
+
+PlatformUnsupportedException::~PlatformUnsupportedException() {}
} // namespace cru::platform