Узагальнені трейти

Трейти також можуть бути загальними, так само як типи та функції. Параметри трейту отримують конкретні типи під час його використання.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • Трейт From буде розглянутий пізніше у курсі, але її визначення у документації std є простим.

  • Реалізації трейту не обов’язково повинні охоплювати всі можливі параметри типів. У цьому випадку Foo::from("hello") не буде скомпільовано, оскільки для Foo не існує реалізації From<&str>.

  • Узагальнені трейти приймають типи як “вхідні”, тоді як асоціативні типи є своєрідним “вихідним” типом. Трейт може мати декілька реалізацій для різних вхідних типів.

  • Ведеться робота над додаванням цієї підтримки, яка називається спеціалізація.