public static Task <IFailableResult <TNewResult, TFailure> > OnSuccessAsync <TResult, TFailure, TNewResult>( this IFailableResult <TResult, TFailure> result, Func <TResult, Task <IFailableResult <TNewResult, TFailure> > > onSuccessAsync ) => result.Handle( onSuccessAsync, f => FailureResult <TNewResult, TFailure> .CreateAsync(f));
public static Task <IFailableResult <TNewResult, TFailure> > OnSuccessAsync <TResult, TFailure, TNewResult>( this Task <IFailableResult <TResult, TFailure> > asyncResult, Func <TResult, Task <IFailableResult <TNewResult, TFailure> > > onSuccessAsync, bool configureAwait = false ) => asyncResult.HandleAsync( onSuccessAsync, f => FailureResult <TNewResult, TFailure> .CreateAsync(f), configureAwait);