Skip to content

Commit b610ef2

Browse files
refactor: Add okOption, errOption
1 parent 861ae62 commit b610ef2

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/main/java/net/marcellperger/mathexpr/util/rs/Result.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,12 @@ static <T, E> Result<T, E> newErr(E err) {
6868
default Optional<Ok<T, E>> okOpt() { return Optional.ofNullable(ok()); }
6969
default Optional<Err<T, E>> errOpt() { return Optional.ofNullable(err()); }
7070

71+
default Option<T> okOption() {
72+
return mapOr(Option.newNone(), Option::newSome);
73+
}
74+
default Option<E> errOption() {
75+
return ifThenElse(_ok -> Option.newNone(), Option::newSome);
76+
}
7177

7278
default boolean isOk() { return ok() != null; }
7379
default boolean isErr() { return err() != null; }

src/test/java/net/marcellperger/mathexpr/util/rs/ResultTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,4 +430,16 @@ void errOpt() {
430430
assertEquals(Optional.empty(), getOk().errOpt());
431431
assertEquals(Optional.of(new Err<>("TESTING_ERROR")), getErr().errOpt());
432432
}
433+
434+
@Test
435+
void okOption() {
436+
assertEquals(Option.newSome(314), getOk().okOption());
437+
assertEquals(Option.newNone(), getErr().okOption());
438+
}
439+
440+
@Test
441+
void errOption() {
442+
assertEquals(Option.newNone(), getOk().errOption());
443+
assertEquals(Option.newSome("TESTING_ERROR"), getErr().errOption());
444+
}
433445
}

0 commit comments

Comments
 (0)