Tipi generici e traits

In questo capitolo vedremo come implementare in Rust delle funzioni e delle strutture in maniera generica rispetto a dei tipi. Vedremo poi come è possibile definire dei trait, ovvero delle definizioni d'interfacce che un tipo può implementare. Vedremo poi cosa sono i lifetime e come possono essere usati per tracciare la vita delle reference a tempo di compilazione.