Commit Graph

19 Commits

Author SHA1 Message Date
Michael Bull
43ebd5753a Add Rust's mapOr & mapOrElse
See: https://blog.rust-lang.org/2020/01/30/Rust-1.41.0.html#library-changes
2020-01-31 09:17:49 +00:00
Michael Bull
434b8aa7fb Fix typo in Result#unwrap exception message
Fixes #8
2020-01-11 10:14:59 +00:00
Michael Bull
586b260683 Deprecate Result.of in favour of runCatching factory function
Matches Kotlin's stdlib and becomes top-level
2019-08-24 00:20:46 +01:00
Michael Bull
66f1122efb Add compiler contracts
See: https://kotlinlang.org/docs/reference/whatsnew13.html#contracts
2019-08-09 21:53:52 +01:00
Michael Bull
63da9642fb Remove internal modifiers from test classes/methods 2018-11-01 19:02:57 +00:00
Michael Bull
b6bb3aafaa Correct test method names in OnTest 2018-11-01 11:42:57 +00:00
Michael Bull
b5aab62af4 Add Result.recover
Similar to getOrElse but returns an Ok of the transformed error
2018-11-01 11:42:09 +00:00
Michael Bull
410563b621 Add toResultOr
Acts as a factory function to convert nullable types to Result types
2018-01-24 18:20:39 +00:00
Michael Bull
76870ef78a Catch Exception instead of Throwable in Result.of 2018-01-11 18:31:10 +00:00
Michael Bull
c6be93142d Add lazy variants for {and,or,getOr,getErrorOr} 2018-01-10 13:27:02 +00:00
Michael Bull
9ddac98e0c Add multi-platform support
Converts the unit tests to use kotlin-test, allowing them to target both
the jvm and js platforms.
2017-12-16 19:30:54 +00:00
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
b513c09470 Suppress unreachable code warnings in MapTest
These are intentional and are necessary to identify broken behaviour in
future, therefore the warnings are redundant.
2017-11-22 23:41:32 +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
7be628e79e Add unit tests for Result.of 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