Interface Result<T>

All Known Implementing Classes:
Result.Err, Result.Ok

public sealed interface Result<T> permits Result.Ok<T>, Result.Err<T>
Either a value or a MachineError.
  • Method Details

    • ok

      @NotNull static <T> @NotNull Result<T> ok(@NotNull T value)
    • err

      @NotNull static <T> @NotNull Result<T> err(@NotNull @NotNull MachineError error)
    • isOk

      boolean isOk()
    • isErr

      default boolean isErr()
    • value

      @NotNull T value()
      Throws:
      IllegalStateException - if this is an error
    • error

      @NotNull @NotNull MachineError error()
      Throws:
      IllegalStateException - if this is a value
    • toOptional

      @NotNull default @NotNull Optional<T> toOptional()
    • orElse

      @NotNull default T orElse(@NotNull T fallback)
    • orElseThrow

      @NotNull default T orElseThrow()
      Throws:
      Result.ResultException - wrapping the error
    • map

      @NotNull default <R> @NotNull Result<R> map(@NotNull @NotNull Function<? super T, ? extends R> mapper)
    • flatMap

      @NotNull default <R> @NotNull Result<R> flatMap(@NotNull @NotNull Function<? super T, Result<R>> mapper)
    • mapError

      @NotNull default @NotNull Result<T> mapError(@NotNull @NotNull UnaryOperator<MachineError> mapper)
    • ifOk

      @NotNull default @NotNull Result<T> ifOk(@NotNull @NotNull Consumer<? super T> action)
    • ifErr

      @NotNull default @NotNull Result<T> ifErr(@NotNull @NotNull Consumer<? super MachineError> action)