Enums
Enums support variants with and without associated data. Pattern matching extracts the data from each variant.
use system.io
enum Result
Ok(int)
Error(String)
fn handle(r Result)
match r
Result.Ok(n): println(f"Success: {n}")
Result.Error(msg): println(f"Error: {msg}")
fn main()
let r = Result.Ok(42)
handle(r)
Enums can have simple tag variants (Red, Green) or carry data (Ok(int), Error(String)). Each variant can hold different types and numbers of fields.