Structs and Enums
RUDRA has structs for grouped data and enums for a fixed set of named values.
Structs
struct Point { x: int, y: int }
fn main() {
let p = Point { x: 3, y: 4 };
print(p.x);
print(p.y);
} Enums
enum Color { Red, Green, Blue }
fn name(c: Color) -> str {
match c {
Red => { return "red"; }
Green => { return "green"; }
Blue => { return "blue"; }
}
}
fn main() {
print(name(Green));
} This program prints green.
Pattern matching
A match over an enum is checked for exhaustiveness: every variant must be handled, or a wildcard pattern must cover the rest.