Tipurile generice în Rust funcționează mâna în mâna cu trăsăturile. Când descriem un tip parametrizat T
, putem constrânge ce tipuri pot fi folosite ca argumente,
listând trăsăturile necesare (în engleză „trait bound”) pe care argumentul trebuie să le implementeze.
În acest exemplu, tipul T
trebuie să implementeze trăsătură Foo
:
fn functia_mea<T>(foo: T)
where
T:Foo
{
...
}
Folosind tipurile generice, creăm șabloane de funcții care au tipuri de date ce vor fi înlocuite la momentul compilării cu tipuri de date cunoscute, permițându-ne să utilizăm apelarea statică.