rustlings/exercises/traits
Yakov Manshin 2f30da890d
Updated compare_license_types to Use References
* The `compare_license_types` function shouldn’t take ownership of its parameters

Signed-off-by: Yakov Manshin <git@yakovmanshin.com>
2022-10-24 05:01:51 +03:00
..
README.md docs(exercises): updated all exercises readme files 2021-04-23 19:54:31 +02:00
traits1.rs feat(traits): add hint comments 2022-07-14 18:14:41 +02:00
traits2.rs feat(traits): add hint comments 2022-07-14 18:14:41 +02:00
traits3.rs fix(traits): update hint comments 2022-07-15 14:14:48 +02:00
traits4.rs Updated compare_license_types to Use References 2022-10-24 05:01:51 +03:00
traits5.rs fix(traits5): make exercise prefer trait-based solution 2022-08-07 14:51:16 -04:00

Traits

A trait is a collection of methods.

Data types can implement traits. To do so, the methods making up the trait are defined for the data type. For example, the String data type implements the From<&str> trait. This allows a user to write String::from("hello").

In this way, traits are somewhat similar to Java interfaces and C++ abstract classes.

Some additional common Rust traits include:

  • Clone (the clone method)
  • Display (which allows formatted display via {})
  • Debug (which allows formatted display via {:?})

Because traits indicate shared behavior between data types, they are useful when writing generics.

Further information