associated type
A type a trait lets each implementation choose, like Iterator's Item.
An associated type is a type placeholder declared in a trait (type Item;) and fixed by each impl; unlike a generic parameter, each type implements the trait only once.
Examples
impl Add for Money { type Output = Money; ... }fixes whata + breturns forMoney, once for that impl.