Traits and Generics
Traits in Rust are like interfaces in other languages. They define shared behavior.
Defining a Trait
trait Greet {
fn greet(&self) -> String;
}
Implementing a Trait
struct Person;
impl Greet for Person {
fn greet(&self) -> String {
String::from("Hello!")
}
}
Generics
Allow functions and types to operate on multiple types:
fn largest(list: &[T]) -> &T {
let mut largest = &list[0];
for item in list {
if item > largest {
largest = item;
}
}
largest
}