Οι γενικοί τύποι λειτουργούν στη Rust χέρι-χέρι με τα traits. Όταν περιγράφουμε έναν παραμετροποιημένο τύπο T, μπορούμε να περιορίσουμε ποιοι τύποι μπορούν να χρησιμοποιηθούν ως όρισμα, απαριθμώντας ποια traits πρέπει να υλοποιεί το όρισμα.
Σ' αυτό το παράδειγμα, ο τύπος T πρέπει να υλοποιεί το Foo:
fn my_function<T>(foo: T)
where
T:Foo
{
...
}
Χρησιμοποιώντας γενικούς τύπους, δημιουργούμε κατά τη μεταγλώττιση στατικά τυποποιημένες συναρτήσεις με γνωστούς τύπους και μεγέθη, κάτι που μάς επιτρέπει να κάνουμε στατική αποστολή και να τις αποθηκεύσουμε ως τιμή γνωστού μεγέθους.