mirror of
https://github.com/logos-storage/questionable.git
synced 2026-01-03 22:33:07 +00:00
Provide conversion to string $ for Results
This commit is contained in:
parent
b18444a6d0
commit
23c44bf764
@ -73,6 +73,12 @@ proc isFailure*[T](value: ?!T): bool =
|
|||||||
|
|
||||||
value.isErr
|
value.isErr
|
||||||
|
|
||||||
|
proc `$`*[T](value: ?!T): string =
|
||||||
|
if value.isSuccess:
|
||||||
|
"success(" & $(!value) & ")"
|
||||||
|
else:
|
||||||
|
"failure(\"" & $(value.error.msg) & "\")"
|
||||||
|
|
||||||
template `->?`*[T,U](value: ?!T, expression: ?!U): ?!U =
|
template `->?`*[T,U](value: ?!T, expression: ?!U): ?!U =
|
||||||
if value.isFailure:
|
if value.isFailure:
|
||||||
U.failure(value.error)
|
U.failure(value.error)
|
||||||
|
|||||||
@ -14,6 +14,10 @@ suite "result":
|
|||||||
check (?!string is Result[string, ref CatchableError])
|
check (?!string is Result[string, ref CatchableError])
|
||||||
check (?!seq[bool] is Result[seq[bool], ref CatchableError])
|
check (?!seq[bool] is Result[seq[bool], ref CatchableError])
|
||||||
|
|
||||||
|
test "conversion to string $ works for ?!Types":
|
||||||
|
check $42.success == "success(42)"
|
||||||
|
check $(int.failure "some error") == "failure(\"some error\")"
|
||||||
|
|
||||||
test "! gets value or raises Defect":
|
test "! gets value or raises Defect":
|
||||||
check !42.success == 42
|
check !42.success == 42
|
||||||
expect Defect: discard !int.failure error
|
expect Defect: discard !int.failure error
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user