SuccessOrFailure.getOrDefault
This commit is contained in:
@@ -39,6 +39,7 @@ class SuccessOrFailureTest {
|
||||
assertEquals(v, ok.getOrElse { throw it })
|
||||
assertEquals(v, ok.getOrNull())
|
||||
assertEquals(v, ok.getOrElse { null })
|
||||
assertEquals(v, ok.getOrDefault("DEF"))
|
||||
assertEquals(v, ok.getOrElse { "EX:$it" })
|
||||
assertEquals("V:$v", ok.fold({ "V:$it" }, { "EX:$it" }))
|
||||
assertEquals(null, ok.exceptionOrNull())
|
||||
@@ -68,6 +69,7 @@ class SuccessOrFailureTest {
|
||||
assertFails { fail.getOrElse { throw it } }
|
||||
assertEquals(null, fail.getOrNull())
|
||||
assertEquals(null, fail.getOrElse { null })
|
||||
assertEquals("DEF", fail.getOrDefault("DEF"))
|
||||
assertEquals("EX:java.lang.IllegalStateException: $msg", fail.getOrElse { "EX:$it" })
|
||||
assertEquals("EX:java.lang.IllegalStateException: $msg", fail.fold({ "V:$it" }, { "EX:$it" }))
|
||||
assertEquals(msg, fail.exceptionOrNull()!!.message)
|
||||
|
||||
@@ -180,6 +180,15 @@ public inline class SuccessOrFailure<out T> @PublishedApi internal constructor(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the encapsulated value if this instance represents [success][SuccessOrFailure.isSuccess] or the
|
||||
* [defaultValue] if it is [failure][SuccessOrFailure.isFailure].
|
||||
*
|
||||
* This function is shorthand for `getOrElse { defaultValue }` (see [getOrElse]).
|
||||
*/
|
||||
public fun <R, T : R> SuccessOrFailure<T>.getOrDefault(defaultValue: R): R =
|
||||
getOrElse { defaultValue }
|
||||
|
||||
/**
|
||||
* Returns the the result of [onSuccess] for encapsulated value if this instance represents [success][SuccessOrFailure.isSuccess]
|
||||
* or the result of [onFailure] function for encapsulated exception if it is [failure][SuccessOrFailure.isFailure].
|
||||
|
||||
Reference in New Issue
Block a user