diff options
Diffstat (limited to 'rustlings/exercises/14_generics')
| -rw-r--r-- | rustlings/exercises/14_generics/README.md | 11 | ||||
| -rw-r--r-- | rustlings/exercises/14_generics/generics1.rs | 18 | ||||
| -rw-r--r-- | rustlings/exercises/14_generics/generics2.rs | 31 |
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"); - } -} |