This module contains a generic type that can be used as a return type for operations that could fail. It adds additional messages to the result.
-OP stands for "Operation result".
- +| Version: | 1.0.0 |
|---|---|
| Author: | luxick <op@luxick.de> |
OP stands for "Operation Result".
+This module contains a generic type that can be used as a return type for operations that could fail. It adds additional messages to the result.
+This module improves upon the options module in that additional messages can be passed along with the presence or absence of a value.
+ +Basic Usage
proc divide(a, b: int): OP[float] = + ## This could fail + if b == 0: + return fail(float, "Cannot divide by zero!") + else: + return ok a / b # Wrap the result + +let r = divide(42, 0) +assert r.isOk == false +assert r.error == "Cannot divide by zero!"
Types
-
@@ -202,7 +216,7 @@ Will create a new operation result with the given error message. The type for th
proc fail(T: typedesc; msg: string): OP[T]
- -Alias for fail[T](string) proc +Alias for fail[T](string) @@ -215,7 +229,7 @@ Alias for fail[T](string) proc