summaryrefslogtreecommitdiff
path: root/solutions/14_generics/generics1.rs
blob: e2195fd360bd1678a22f435311512086bcd4816c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// `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() {
    // `u8` and `i8` can both be converted to `i16`.
    let mut numbers: Vec<i16> = Vec::new();
    //             ^^^^^^^^^^ added

    // Don't change the lines below.
    let n1: u8 = 42;
    numbers.push(n1.into());
    let n2: i8 = -1;
    numbers.push(n2.into());

    println!("{numbers:?}");
}