抽象的な型の概念。
Javaとかでも実装されている機能。Vec<T>などの、宣言時におけるTという抽象的な型。(Tには何の型でも入力できる)
関数シグニチャで用いた場合、以下のように宣言する。
fn hoge<T>(list: &[T]) -> T {
慣習として最初のジェネリクス型へは、T(Typeの頭文字)を用いる。
同一の文字列で定義した型には同一の型が入力される。同一文字列のジェネリクス型へ別の型を入力した場合、コンパイルエラーが発生する。
なお、異なる文字列を用いればその限りではない
enum Result<T, E> {
Ok(T),
Err(E),
}