Generics — write code for multiple types.
Basic generics:
1fn largest<T: PartialOrd>(list: &[T]) -> &T {2 let mut largest = &list[0];3 for item in list {4 if item > largest {5 largest = item;6 }7 }8 largest9}1011let numbers = vec![34, 50, 25, 100, 65];12println!("{}", largest(&numbers)); // 100
Multiple type parameters:
1fn pair<T, U>(a: T, b: U) -> (T, U) {2 (a, b)3}
Struct generics:
1struct Point<T> {2 x: T,3 y: T,4}56let integer_point = Point { x: 5, y: 10 };7let float_point = Point { x: 1.0, y: 4.0 };
Key: Use <T> for type parameters, bounds for constraints.