summaryrefslogtreecommitdiff
path: root/rustlings/exercises/14_generics
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
committerHunter Kvalevog <hunter@kvog.sh>2026-10-02 21:53:51 -0500
commit4dfc11d74ab02ac5765ae5d08fb750c91f4744b4 (patch)
tree17ba62056d6b691dd0217b0e8f1b3a5826dce0f6 /rustlings/exercises/14_generics
parent02d8f1c62896576e1266553a56980eddbc2a88d7 (diff)
rustlings: move to rust/
Diffstat (limited to 'rustlings/exercises/14_generics')
-rw-r--r--rustlings/exercises/14_generics/README.md11
-rw-r--r--rustlings/exercises/14_generics/generics1.rs18
-rw-r--r--rustlings/exercises/14_generics/generics2.rs31
3 files changed, 0 insertions, 60 deletions
diff --git a/rustlings/exercises/14_generics/README.md b/rustlings/exercises/14_generics/README.md
deleted file mode 100644
index 0c8c8cb..0000000
--- a/rustlings/exercises/14_generics/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-# Generics
-
-Generics is the topic of generalizing types and functionalities to broader cases.
-This is extremely useful for reducing code duplication in many ways, but can call for some rather involved syntax.
-Namely, being generic requires taking great care to specify over which types a generic type is actually considered valid.
-The simplest and most common use of generics is for type parameters.
-
-## Further information
-
-- [Generic Data Types](https://doc.rust-lang.org/book/ch10-01-syntax.html)
-- [Bounds](https://doc.rust-lang.org/rust-by-example/generics/bounds.html)
diff --git a/rustlings/exercises/14_generics/generics1.rs b/rustlings/exercises/14_generics/generics1.rs
deleted file mode 100644
index 7e5571f..0000000
--- a/rustlings/exercises/14_generics/generics1.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-// `Vec<T>` is generic over the type `T`. In most cases, the compiler is able to
-// infer `T`, for example after pushing a value with a concrete type to the vector.
-// But in this exercise, the compiler needs some help through a type annotation.
-
-fn main() {
- // TODO: Fix the compiler error by annotating the type of the vector
- // `Vec<T>`. Choose `T` as some integer type that can be created from
- // `u8` and `i8`.
- let mut numbers: Vec<i32> = Vec::new();
-
- // Don't change the lines below.
- let n1: u8 = 42;
- numbers.push(n1.into());
- let n2: i8 = -1;
- numbers.push(n2.into());
-
- println!("{numbers:?}");
-}
diff --git a/rustlings/exercises/14_generics/generics2.rs b/rustlings/exercises/14_generics/generics2.rs
deleted file mode 100644
index ba77625..0000000
--- a/rustlings/exercises/14_generics/generics2.rs
+++ /dev/null
@@ -1,31 +0,0 @@
-// This powerful wrapper provides the ability to store a positive integer value.
-// TODO: Rewrite it using a generic so that it supports wrapping ANY type.
-struct Wrapper<T> {
- value: T,
-}
-
-// TODO: Adapt the struct's implementation to be generic over the wrapped value.
-impl<T> Wrapper<T> {
- fn new(value: T) -> Self {
- Wrapper { value }
- }
-}
-
-fn main() {
- // You can optionally experiment here.
-}
-
-#[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() {
- assert_eq!(Wrapper::new("Foo").value, "Foo");
- }
-}