Тур по Rust Содержание

Обобщенные функции (Generic Functions)

Обобщенные типы (generics) в Rust работают рука об руку с типажами. Когда мы описываем обобщенный тип T, мы можем ограничить, какие типы можно использовать в качестве аргумента, перечисляя какие обязательные типажи должен реализовывать данный обобщенный аргумент.

В данном примере тип T должен реализовывать типаж Foo:

fn my_function<T>(foo: T)
where
    T:Foo
{
    ...
}

Используя обобщенный тип (generics), мы создаем статические типизированные функции во время компиляции, которые будут иметь известные типы и размер, что позволяет нам выполнять статическую диспетчеризацию вызова и сохранять (функцию) в виде значения известного размера.