Подобно функциям, реализации требуют выполнения некоторых условий, чтобы оставаться обобщёнными.
#![allow(unused)]fnmain() {
structS; // Конкретный тип `S`structGenericVal<T>(T); // Обобщенный тип `GenericVal`// Реализация GenericVal, где мы явно указываем типы данных параметров:impl GenericVal<f32> {} // Указываем тип `f32`impl GenericVal<S> {} // Указываем тип `S`, который мы определили выше// `<T>` должен указываться перед типом, чтобы оставаться обобщённымimpl<T> GenericVal<T> {}
}