Если i32 и i64 два типа дженерика - две разных функции ат компайл-тайм, каждая из функций держит в себе трейт или они вдвоем обращаются к виртуальной таблице и юзают общий трейт?
Разные функции
Разные функции, но ты можешь использовать одну функцию, подав на вход dyn Trait вместо конкретного типа (ну, то есть dyn Trait — это как раз конкретный тип, но этот тип можно получить из кучи типов с помощью апкаста; поскольку тип конкретный и один и тот же, используется одна функция). А вообще, про мономорфизацию вроде бы в раст буке было.
Да, просто я читаю Programming rust 2nd edition, там как-то криво описан этот момент.
Обсуждают сегодня