Введение в ассоциированные типы в Rust
Ассоциированный тип это имя типа, которое каждый выполнитель трейта выбирает сам. В описании набора методов его объявляют без конкретного вида данных, а в блоке выполнения для структуры или перечисления подставляют нужный тип. Так один трейт описывает общую форму, а детали хранения остаются у типа.
Это близко к обобщению, но параметр типа
не передают снаружи при каждом использовании.
Кто выполняет набор, тот один раз фиксирует
связанный тип в своем блоке. Снаружи видно
запись через Self:: и имя, которое
задали в описании трейта.
Кроме имени типа в трейте можно требовать константу, известную при сборке: у каждого выполнителя свое число. У готовых наборов из стандартной библиотеки такие имена тоже есть, например у обхода элементов коллекции.
Дальше разберем свой тип элемента в описании трейта, готовый обход с уже выбранным видом значения в цикле и константу внутри набора.