include include include struct Point { x: int, y: int } enum Event { Quit, Click(Point), KeyPress(char) } trait Drawable { fn draw(self); } struct Button { label: char*, width: int, height: int } impl Button { fn draw(self) { println "[Button: '{self.label}' size={self.width}x{self.height}]"; } } struct Container { item: T } impl Container { fn get(self) -> T { return self.item; } } fn run_op(a: int, b: int, op: fn(int, int) -> int) -> int { return op(a, b); } fn process_event(e: Event) { match e { Event::Quit => { println "Event: Quit received. Shutting down..."; }, Event::Click(p) => { println "Event: Mouse Clicked at ({p.x}, {p.y})"; }, Event::KeyPress(k) => { println "Event: Key Pressed '{k}'"; }, _ => { println "Event: Unknown"; } } } fn main() { defer { println "End of demo!"; } defer { println "Cleaning up resources..."; } println "=> Generics and traits."; let btn = Button { label: "Submit", width: 120, height: 40 }; let container = Container