| class Test { |
| public static <Tfoo, Vfoo> Future<Vfoo> foo(Future<Tfoo> future, Function<Tfoo, Vfoo> function) { |
| return future.map(function); |
| } |
| |
| // These interfaces inspired by FoundationDB Java client class files |
| interface PartialFunction <TP, VP> { |
| VP apply(TP t) throws java.lang.Exception; |
| } |
| |
| interface Function <TF, VF> extends PartialFunction<TF, VF> { |
| VF apply(TF t); |
| } |
| |
| interface PartialFuture <TPP> { |
| <VPP> PartialFuture<VPP> map(PartialFunction<TPP, VPP> partialFunction); |
| } |
| |
| interface Future <TFF> extends PartialFuture<TFF> { |
| <VFF> Future<VFF> map(Function<TFF, VFF> function); |
| } |
| } |