diff options
Diffstat (limited to 'src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java')
| -rw-r--r-- | src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java index b2e892b..d18f278 100644 --- a/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java +++ b/src/main/java/org/zwobble/mammoth/internal/results/InternalResult.java @@ -23,6 +23,17 @@ public class InternalResult<T> { lazyFlatMap(results, result -> result.warnings)); } + public static <T1, T2, R> InternalResult<R> flatMap( + InternalResult<T1> first, + InternalResult<T2> second, + BiFunction<T1, T2, InternalResult<R>> function) + { + InternalResult<R> intermediateResult = function.apply(first.value, second.value); + return new InternalResult<>( + intermediateResult.value, + lazyConcat(lazyConcat(first.warnings, second.warnings), intermediateResult.warnings)); + } + public static <T1, T2, R> InternalResult<R> map( InternalResult<T1> first, InternalResult<T2> second, |
