Enum
Teori
Enum (enumeration/opremsning) giver mulighed for at definere et vilkårligt antal af værdier som en datatype kan antage.

match
Nedenfor er der opstillet en enum der angiver de fem arbejdsdage i Rust [1]. For Python se enum — Support for enumerations.
Når der skal laves forgreninger der afhænger af værdien i en enum kan der udover alm. forgreninger bruges match. Især ved mange muligheder kan match være nemmere at læse, sikrer at alle muligheder er dækket og kan være mere effektivt [2] end en række if-else-sætninger. Se evt. også [3].
enum Workday {
Monday,
Tuesday,
Wednesday,
Thursday,
Friday
}
let day = Workday::Monday;
// Match: Alle muligheder skal dækkes, men _ kan bruges til at fange alt andet
match day {
Workday::Monday => println!("Første dag efter weekend!"),
Workday::Friday => println!("Weekend i morgen!"),
_ => println!("Snart weekend!")
}Rust: Datatyper i Enum
Der kan også angives datatyper i værdierne for en Enum. Det muliggør fx at kunne have flere datatyper i parameteren til en funktion eller flere datatyper i en Vector.
enum A {
Int(i8),
Float(f32)
}
let v = vec![A::Int(8), A::Float(6.5)];Rust: Option<T>
Rust har en indbygget Enum OptionT angiver en vilkårlig datatype. Den bruges bl.a. når det ikke vides på forhånd, hvorvidt der kan returneres en værdi. Det er fx tilfældet for Vec::last()
enum Option<T> {
None,
Some(T),
}