From b4ebee0c34c8a38e9d4600815bca3f10c2aefe2d Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Wed, 4 Mar 2026 22:15:07 -0600 Subject: [PATCH] Add result example as long-term goal. --- examples/result.dm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 examples/result.dm diff --git a/examples/result.dm b/examples/result.dm new file mode 100644 index 0000000..4fbbfdf --- /dev/null +++ b/examples/result.dm @@ -0,0 +1,26 @@ +enum Result + Ok(T), + Err(E) +end + +int Error + message: String +end + +class BadArgumentError(argument: String) : Error + pub message = "Invalid argument: ${argument}" +end + +fn main(args: Array) -> Result + let left = args.get(0).flatMap(Int::parse) + if left is None then + return Err(BadArgumentError(args.get(0))) + end + + let right = args.get(1).flatMap(Int::parse) + if right is None then + return Err(BadArgumentError(args.get(1))) + end + + Ok(left.unwrap() + right.unwrap()) +end