Параметры типа
Внутри тела элемента, который имеет объявления параметров типа, имена его параметров типа являются типами:
#![allow(unused)] fn main() { fn to_vec<A: Clone>(xs: &[A]) -> Vec<A> { if xs.is_empty() { return vec![]; } let first: A = xs[0].clone(); let mut rest: Vec<A> = to_vec(&xs[1..]); rest.insert(0, first); rest } }
Здесь first имеет тип A, ссылаясь на параметр типа A функции to_vec; и
rest имеет тип Vec<A>, вектор с типом элемента A.