From ea9534610663a1a52fe248a08eeefa4bf8e5591e Mon Sep 17 00:00:00 2001 From: Zuhaitz Méndez Fernández de Aránguiz Date: Sun, 11 Jan 2026 23:40:49 +0000 Subject: Another example. --- examples/showcase.zc | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 examples/showcase.zc diff --git a/examples/showcase.zc b/examples/showcase.zc new file mode 100644 index 0000000..eca5480 --- /dev/null +++ b/examples/showcase.zc @@ -0,0 +1,98 @@ + +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."; + var btn = Button { + label: "Submit", + width: 120, + height: 40 + }; + + var container = Container