Commit Graph

17 Commits

Author SHA1 Message Date
Michael Bull
e455be2cc8 Make lambda return type of expect{Err} return Any
When constructing the exception message the toString method will be
implicitly called on the result of the lambda.

Takes inspiration from Kotlin's require function [1].

[1]: https://github.com/JetBrains/kotlin/blob/v1.2.0/libraries/stdlib/src/kotlin/util/Preconditions.kt#L26
2017-11-28 18:23:36 +00:00
Michael Bull
5d5195af9d Add getErrorOrElse
Matches getOrElse signature with respect to the error.
2017-11-22 23:25:28 +00:00
Michael Bull
ad7adacf39 Lazily evaluate message argument in expect/expectError 2017-11-22 23:25:28 +00:00
Michael Bull
af13c9ee7c Rename Error class to Err
Avoids naming conflict with the stdlib's Error class, also now matches
Rust's naming.
2017-10-22 16:08:26 +01:00
Michael Bull
1933c9f845 Use filterIsInstance in getAll methods 2017-10-22 16:07:24 +01:00
Michael Bull
f0fb536516 Add Result.of factory method
Inspired by result4k, invokes a callback within a try/catch block,
returning an Error if an exception was thrown and Ok otherwise.
2017-10-22 16:07:24 +01:00
Michael Bull
dc4101b8ef Remove factory methods and expose Ok/Error constructors
Also converts them to data classes.
2017-10-22 16:07:24 +01:00
Michael Bull
bf3aaee77b Move to new package name 2017-10-22 00:59:16 +01:00
Michael Bull
ff40e12e6f Add inline documentation to library methods 2017-10-21 21:19:21 +01:00
Michael Bull
9acd99dffd Pass error/value to UnwrapException message 2017-10-21 19:17:01 +01:00
Michael Bull
eb4aecaab8 Correct generic type identifier on mapError 2017-10-21 18:52:14 +01:00
Michael Bull
be2fa210cc Add getErrorOr
Matches Haskell's Either.fromRight
2017-10-21 18:10:08 +01:00
Michael Bull
bffa455ee4 Add feature parity with Rust's Result type 2017-10-21 16:52:29 +01:00
Michael Bull
c3534276b4 Rename error factory method to err
Kotlin has it's own error method, therefore the IDE doesn't immediately
prompt the user to import our error factory method.
2017-10-21 15:03:39 +01:00
Michael Bull
c9a7d16562 Move factory methods to Result.kt 2017-10-21 04:37:37 +01:00
Michael Bull
faf315d395 Use named arguments in unit tests 2017-10-21 04:21:56 +01:00
Michael Bull
3602e8dce1 Initial commit 2017-10-21 03:51:30 +01:00