::<T> turbofishの役割

ジェネリクスのパラメーターを指定する

例1 std::any::type_name<T>() -> &'static str

fn type_of_val<T>(_val: T) ->&'static str {
    std::any::type_name::<T>()
}

例2 std::iter::Iterator::collect<B>(self) -> B

let tokens = "xyz 1 1.0 *".split_whitespace().collect::<Vec<_>>();

名前の由来

魚がターボエンジンで進んでいるように見えることから

参照

doc.rust-lang.org