summaryrefslogtreecommitdiff
path: root/exercises/enums/enums2.rs
diff options
context:
space:
mode:
authorThomas Holloway <nyxtom@gmail.com>2019-10-28 22:49:49 -0500
committerThomas Holloway <nyxtom@gmail.com>2019-10-28 22:49:49 -0500
commitdc15032112fc485226a573a18139e5ce928b1755 (patch)
tree9a54577ded6adb2dc67df6b9f6e0980008cf817e /exercises/enums/enums2.rs
parent2191ef7eee2f0d7bb006d2174ba5bdd4057fd3c4 (diff)
feat: Add enums exercises
Diffstat (limited to 'exercises/enums/enums2.rs')
-rw-r--r--exercises/enums/enums2.rs61
1 files changed, 61 insertions, 0 deletions
diff --git a/exercises/enums/enums2.rs b/exercises/enums/enums2.rs
new file mode 100644
index 0000000..71ac839
--- /dev/null
+++ b/exercises/enums/enums2.rs
@@ -0,0 +1,61 @@
+// enums2.rs
+// Make me compile! Scroll down for hints
+
+#[derive(Debug)]
+enum Message {
+ // TODO: define the different variants used below
+}
+
+impl Message {
+ fn call(&self) {
+ println!("{:?}", &self);
+ }
+}
+
+fn main() {
+ let messages = [
+ Message::Move{ x: 10, y: 30 },
+ Message::Echo(String::from("hello world")),
+ Message::ChangeColor(200, 255, 255),
+ Message::Quit
+ ];
+
+ for message in &messages {
+ message.call();
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// Hint: you can create enumerations that have different variants with different types
+// such as no data, anonymous structs, a single string, tuples, ...etc