ResultExtensions.cs 557 B

12345678910111213141516171819202122
  1. using SharedKernel.Results;
  2. namespace Web.Api.Extensions;
  3. public static class ResultExtensions
  4. {
  5. public static TOut Match<TOut>(
  6. this Result result,
  7. Func<TOut> onSuccess,
  8. Func<Result, TOut> onFailure
  9. ) {
  10. return result.IsSuccess ? onSuccess() : onFailure(result);
  11. }
  12. public static TOut Match<TIn, TOut>(
  13. this Result<TIn> result,
  14. Func<TIn, TOut> onSuccess,
  15. Func<Result<TIn>, TOut> onFailure
  16. ) {
  17. return result.IsSuccess ? onSuccess(result.Value) : onFailure(result);
  18. }
  19. }