diff --git a/src/op.nim b/src/op.nim index 8a71710..2bac93e 100644 --- a/src/op.nim +++ b/src/op.nim @@ -45,3 +45,7 @@ proc fail*[T](msg: string): OP[T] = assert res.error == "Something is wrong!" OP[T](isOK: false, error: msg) +proc fail*(T: typedesc, msg: string): OP[T] = + ## Alias for `fail[T](string) proc <#fail,string>`_ + fail[T] msg + diff --git a/tests/tests.nim b/tests/tests.nim index 2177d5c..a2fca25 100644 --- a/tests/tests.nim +++ b/tests/tests.nim @@ -19,7 +19,7 @@ test "Check proc results": check data.isOk check data.val == "This is test code!" -test "Check failing proc": +test "Check failing result proc": proc someProc(): OP[int] = result.fail "Not implemented!" @@ -27,6 +27,22 @@ test "Check failing proc": assert data.isOk == false assert data.error == "Not implemented!" +test "Check failing typedesc proc ": + proc someProc(): OP[int] = + fail(int, "Not implemented!") + + let data = someProc() + assert data.isOk == false + assert data.error == "Not implemented!" + +test "Check failing type param proc ": + proc someProc(): OP[int] = + op.fail[int]("Not implemented!") + + let data = someProc() + assert data.isOk == false + assert data.error == "Not implemented!" + test "Check changing result": proc checker(): OP[int] = result = ok 42