summaryrefslogtreecommitdiff
path: root/lib/nes/util/status.hh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nes/util/status.hh')
-rw-r--r--lib/nes/util/status.hh36
1 files changed, 36 insertions, 0 deletions
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