Traits

Rust lets you abstract over types with traits. They’re similar to interfaces:

1. ```
   trait Pet {
   ```
2. ```
       /// Return a sentence from this pet.
   ```
3. ```
       fn talk(&self) -> String;
   ```

5. ```
       /// Print a string to the terminal greeting this pet.
   ```
6. ```
       fn greet(&self);
   ```
7. ```
   }
   ```

This slide and its sub-slides should take about 15 minutes.

  • A trait defines a number of methods that types must have in order to implement the trait.
  • In the “Generics” segment, next, we will see how to build functionality that is generic over all types implementing a trait.