Enumeraciones
Las enumeraciones permiten definir un tipo enumerando sus posibles variantes, de ahí su nombre.
#![allow(unused)] fn main() { enum Mensaje { Salir, //Estructura unitaria CambiarColor(i32, i32, i32), //Estructura de Tupla Mover { x: i32, y: i32 }, //Estructura Escribir(String), //Estructura de Tupla } let w: Mensaje = Mensaje::Escribir(String::from("Hola Mundo!")); let x: Mensaje = Mensaje::Mover { x: 3, y: 4 }; }
Utilizamos la sintaxis :: para hacer uso de cada variante: las variantes están dentro del ámbito del enum. Lo que hace que lo siguiente sea valido:
#![allow(unused)] fn main() { enum Mensaje { Salir, //Estructura unitaria CambiarColor(i32, i32, i32), //Estructura de Tupla Mover { x: i32, y: i32 }, //Estructura Escribir(String), //Estructura de Tupla } enum TurnoJuegoMesa { Mover { celdas: i32 }, //Estructura Pasar, //Estructura unitaria } let y: TurnoJuegoMesa = TurnoJuegoMesa::Mover { celdas: 1 }; let z: Mensaje = Mensaje::Mover { x: 3, y: 4 }; }