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
}
← PrevNext →