aboutsummaryrefslogtreecommitdiff
path: root/examples/35-extend-struct-inline
diff options
context:
space:
mode:
Diffstat (limited to 'examples/35-extend-struct-inline')
-rw-r--r--examples/35-extend-struct-inline/shed.toml7
-rw-r--r--examples/35-extend-struct-inline/src/HelloWorld.shed20
2 files changed, 27 insertions, 0 deletions
diff --git a/examples/35-extend-struct-inline/shed.toml b/examples/35-extend-struct-inline/shed.toml
new file mode 100644
index 00000000..bf5c13c4
--- /dev/null
+++ b/examples/35-extend-struct-inline/shed.toml
@@ -0,0 +1,7 @@
+[[shed.bins]]
+name = "hello-world"
+main-namespace = "HelloWorld"
+
+[[shed.examples]]
+bin = "hello-world"
+expected-output = "hello, world"
diff --git a/examples/35-extend-struct-inline/src/HelloWorld.shed b/examples/35-extend-struct-inline/src/HelloWorld.shed
new file mode 100644
index 00000000..bcdcf023
--- /dev/null
+++ b/examples/35-extend-struct-inline/src/HelloWorld.shed
@@ -0,0 +1,20 @@
+pub fun main() ! Io -> Unit {
+ print!(Count(1).message());
+ print!(Count(2).message());
+ print!(Count(3).message());
+}
+
+struct Count(.value: Int) {
+}
+
+extend Count {
+ fun message(this) -> String {
+ if (this.value == 1) {
+ "one\n"
+ } else if (this.value == 2) {
+ "two\n"
+ } else {
+ "many\n"
+ }
+ }
+}