# Change Log ## Unreleased ## [1.0.5] * Adds ` Result.shouldBeSuccessful(): T` (Roni Greenwood) * Adds `fun Result.shouldBeSuccessful(block: (T) -> Unit): T` (Roni Greenwood) * Adds ` Result.shouldBeSuccessful(expected: T): T` (Roni Greenwood) ## [1.0.3] * Adds ` A.validateResult(predicate: (A) -> Boolean, error: (A) -> Throwable): Result` (Andrew Parker) * Adds ` Result.getOrNone(): Option` (Andrew Parker) * Adds ` Result.getFailureOrNone(): Option` (Andrew Parker) ## [1.0.2] * Moves demand extension function to extensions package (Hugo Müller-Downing) ## [1.0.1] * Adds demand extension function (Hugo Müller-Downing) ## [1.0.0] * Upgrades Arrow to 2.x (Hugo Müller-Downing) * Removes `OutcomeEffectScope` and `OutcomeEagerEffectScope` in favour of `OutcomeBuilder` (Hugo Müller-Downing) * Removes methods interacting with `Validated`, as `Validated` is now deprecated (Hugo Müller-Downing) * Replaces `ValidatedNel` with a typealias of `Either, A>` (Hugo Müller-Downing) ## [0.5.12] * Adds ` Iterable.traverse(f: (A) -> Result): Result>` (Chris Myers) * Adds ` Iterable.traverseResult(f: (A) -> Result): Result>` (Chris Myers) ## [0.5.11] * Adds `outcomeOf{}` Raise DSL which allows for greater interoperability with Result> and ErrorOr (Chris Myers) ## [0.5.10] * Adds ` OutcomeOf.asResult(): Result>` (Chris Myers) * Adds ` Result>.toOutcomeOf(): OutcomeOf` (Chris Myers) * Adds ` Arb.Companion.result(error: Throwable, value: Arb): Arb>` (Chris Myers) * Adds `Arb.Companion.outcomeOf(error: Throwable, value: Arb): Arb>` (Chris Myers) ## [0.5.9] ### Added - 2024-08-05 * Adds `Either.handleErrorWith(f: (A) -> Either): Either` (Chris Myers) ## [0.5.8] ### Added - 2024-07-31 * Adds `Result.handleFailureWith(f: (Throwable) -> Result): Result` (Chris Myers) * Adds ` Result.toOutcome(): OutcomeOf` (Chris Myers) * Adds ` Option.toResult(error: () -> B): Result` (Chris Myers) ## [0.5.7] - 2024-06-29 ### Added * Adds `Result.isSuccess(predicate: (T) -> Boolean): Boolean` and `Result.isFailure(predicate: (Throwable) -> Boolean): Boolean` (Jem Mawson) ## [0.5.6] - 2024-06-21 ### Added * Adds `Result.unit(): Result` as alias for `.map { }` (Jem Mawson) * Adds `Result.tap` and `Result.flatTap` (Jem Mawson) * Adds `Result.toOutcome` (Jem Mawson) ## [0.5.5] - 2024-06-20 ### Added * Adds `Result.catch` to enable the same behaviour as `Either.catch` (Alejandro Metke) * Adds `Result>.flatten(): Result` (Jem Mawson) ### Fixed * `T.failure(): Result` was invalid. Changed to `Throwable.failure(): Result` (Jem Mawson) ## [0.5.4] - 2024-05-21 ### Added * Adds `T.success()` as a shorthand for creating a success `Result` (Jem Mawson) * Adds `.failure()` as a shorthand for creating a failure `Result` (Jem Mawson) * Adds `T.toResult()` as a shorthand for converting nullable types to `Result` (Alejandro Metke) * Adds `Result.mapFailure()` to enable mapping the failure in a result to a different `Throwable` (Alejandro Metke) * Backport traverse functions on Either, Iterable and Option (Andrew Parker) * Backport traverse functions on Sequence, Map and Ior (Andrew Parker) ## [0.5.3] - 2024-05-09 ### Added * Adds `ErrorOr.toResult()` as a shorthand for converting `Either` to `Result` (Jem Mawson) ## [0.5.2] - 2024-04-08 ### Changed Upgraded Arrow to v1.2.4 ## [0.5.1] - 2024-03-26 ### Added * Adds `Option.ifPresent()` as alternative to `Option.forEach()` for symmetry with `Option.ifAbsent()` (Mia Balogh) ## [0.5.0] - 2023-08-26 ### Added * Lazy version of `or`:`Option.or(() -> Option)` (Chris Myers) * Adds `Option.orEmpty()` (Milly Rowett) * Backport traverse functions on NonEmptyList (Andrew Parker) ### Changed * Deprecated `Option.or(Option)` in favour of `Option.or(() -> Option)` (Chris Myers) ## [0.4.0] - 2023-07-26 ### Added * `Option.or(Option)` (Mehdi Mollaverdi) ### Changed * Bumped Arrow to v1.2.0 from v1.2.0-RC (Jem Mawson) ## [0.3.0] - 2023-06-16 ### Added * `kotlin.Result.toEither()` (Jem Mawson) * `validateNotNull` extension function on nullable values (Hugo Müller-Downing) ## [0.2.0] - 2023-04-06 ### Added * Add Either.traverse (Simon Vergauwen) * Either, Nullable & Ior zip (Simon Vergauwen) * Adds validateNotNull extension function on nullable values (Hugo Müller-Downing) ### Fixed * Fix outcome traverse (Simon Vergauwen) * Fix nested nullable issue (Simon Vergauwen) * Fix nested null bug (#22) (Simon Vergauwen) ## [0.1.0] - 2023-03-06 ### Added * `Option.unit()` and `Either.unit()` to replace the `void()` method deprecated by Arrow. * `withRetries` method on suspended supplier functions to provide opinionated access to Arrow's `Schedule`.