docs / Getting Started / Enums

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.