summaryrefslogtreecommitdiff
path: root/lib/nes/util
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nes/util')
-rw-r--r--lib/nes/util/CMakeLists.txt3
-rw-r--r--lib/nes/util/status.hh36
2 files changed, 38 insertions, 1 deletions
diff --git a/lib/nes/util/CMakeLists.txt b/lib/nes/util/CMakeLists.txt
index fdbc939..6f5c112 100644
--- a/lib/nes/util/CMakeLists.txt
+++ b/lib/nes/util/CMakeLists.txt
@@ -7,4 +7,5 @@ target_sources(
debug.hh
display.hh
rgb.hh
- snapshot.hh) \ No newline at end of file
+ snapshot.hh
+ status.hh) \ No newline at end of file
diff --git a/lib/nes/util/status.hh b/lib/nes/util/status.hh
new file mode 100644
index 0000000..64f5969
--- /dev/null
+++ b/lib/nes/util/status.hh
@@ -0,0 +1,36 @@
+#pragma once
+
+namespace nes
+{
+ /// A status code.
+ enum class status
+ {
+ success,
+ error_uninitialized,
+ error_system_error,
+ error_invalid_ines_data,
+ error_unsupported_mapper,
+ error_unsupported_instruction,
+ };
+
+ constexpr auto to_string(status const status) -> char const*
+ {
+ switch (status)
+ {
+ case status::success:
+ return "Success";
+ case status::error_uninitialized:
+ return "Uninitialized";
+ case status::error_system_error:
+ return "System error";
+ case status::error_invalid_ines_data:
+ return "Invalid iNES data";
+ case status::error_unsupported_mapper:
+ return "Unsupported mapper";
+ case status::error_unsupported_instruction:
+ return "Unsupported instruction";
+ }
+
+ return "(invalid)";
+ }
+} // namespace nes \ No newline at end of file