summaryrefslogtreecommitdiff
path: root/exercises/generics/generics2.rs
diff options
context:
space:
mode:
authorsjmann <sjmann91@gmail.com>2020-02-28 00:09:08 +0000
committersjmann <sjmann91@gmail.com>2020-02-28 00:09:08 +0000
commit76be5e4e991160f5fd9093f03ee2ba260e8f7229 (patch)
treeb8a67d78eed6ea02f3497b3620392bec5f3318be /exercises/generics/generics2.rs
parentf981dcfde48670041eb620b942cb899ffdc3b0b5 (diff)
feat: added new exercises for generics
Diffstat (limited to 'exercises/generics/generics2.rs')
-rw-r--r--exercises/generics/generics2.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/exercises/generics/generics2.rs b/exercises/generics/generics2.rs
new file mode 100644
index 0000000..7b9bfc4
--- /dev/null
+++ b/exercises/generics/generics2.rs
@@ -0,0 +1,28 @@
+// This powerful wrapper provides the ability to store a positive integer value.
+// Rewrite it using generics so that it supports wrapping ANY type.
+struct Wrapper<u32> {
+ value: u32
+}
+
+impl<u32> Wrapper<u32> {
+ pub fn new(value: u32) -> Self {
+ Wrapper { value }
+ }
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn store_u32_in_wrapper() {
+ assert_eq!(Wrapper::new(42).value, 42);
+ }
+
+ #[test]
+ fn store_str_in_wrapper() {
+ // TODO: Delete this assert and uncomment the one below once you have finished the exercise.
+ assert!(false);
+ // assert_eq!(Wrapper::new("Foo").value, "Foo");
+ }
+} \ No newline at end of file