summaryrefslogtreecommitdiff
path: root/examples/showcase.zc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/showcase.zc')
-rw-r--r--examples/showcase.zc98
1 files changed, 0 insertions, 98 deletions
diff --git a/examples/showcase.zc b/examples/showcase.zc
deleted file mode 100644
index eca5480..0000000
--- a/examples/showcase.zc
+++ /dev/null
@@ -1,98 +0,0 @@
-
-include <stdio.h>
-include <stdlib.h>
-include <time.h>
-
-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<T> {
- item: T
-}
-
-impl Container<T> {
- 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<Button> { item: btn };
-
- var b = container.get();
- b.draw();
- println "";
-
- println "=> Enums and pattern matching.";
- var events: Event[4] = [
- Event::Click(Point { x: 150, y: 300 }),
- Event::KeyPress('Z'),
- Event::Click(Point { x: 42, y: 0 }),
- Event::Quit()
- ];
-
- for i in 0..4 {
- process_event(events[i]);
- }
- println "";
-
- println "=> Lambdas";
- var sum = run_op(10, 20, (a, b) -> a + b);
- println "10 + 20 = {sum}";
- println "";
-}