aboutsummaryrefslogtreecommitdiff
path: root/exercises/22_errors2.zig
diff options
context:
space:
mode:
authorDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
committerDave Gauer <dave@ratfactor.com>2021-02-09 18:36:57 -0500
commit55ad7c32f2d534b1fbd438204d21738f958c51a5 (patch)
tree16be4b53193105a759b3eec25be5e664d41c428d /exercises/22_errors2.zig
parentcf0920de31e9b5f3c5ba6de19a1b4c8d0c58b907 (diff)
downloadziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.gz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.bz2
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.tar.xz
ziglings-55ad7c32f2d534b1fbd438204d21738f958c51a5.zip
Moved exercises to exercises because exercises
Diffstat (limited to 'exercises/22_errors2.zig')
-rw-r--r--exercises/22_errors2.zig30
1 files changed, 30 insertions, 0 deletions
diff --git a/exercises/22_errors2.zig b/exercises/22_errors2.zig
new file mode 100644
index 0000000..fcfd391
--- /dev/null
+++ b/exercises/22_errors2.zig
@@ -0,0 +1,30 @@
+//
+// A common case for errors is a situation where we're expecting to
+// have a value OR something has gone wrong. Take this example:
+//
+// var text: Text = getText('foo.txt');
+//
+// What happens if getText() can't find 'foo.txt'? How do we express
+// this in Zig?
+//
+// Zig let's us make what's called an "error union" which is a value
+// which could either be a regular value OR an error from a set:
+//
+// var text: MyErrorSet!Text = getText('foo.txt');
+//
+// For now, let's just see if we can try making an error union!
+//
+const std = @import("std");
+
+const MyNumberError = error{ TooSmall };
+
+pub fn main() void {
+ var my_number: ??? = 5;
+
+ // Looks like my_number will need to either store a number OR
+ // an error. Can you set the type correctly above?
+ my_number = MyNumberError.TooSmall;
+
+ std.debug.print("I compiled!", .{});
+}
+