public static async Task OnError <TValue, TError>(
     this IValueOrError <TValue, TError> valueOrError,
     Func <TError, Task> onError)
 {
     if (!valueOrError.hasValue)
     {
         await onError(valueOrError.error);
     }
 }
Example #2
0
 public static void OnError <TValue, TError>(
     this IValueOrError <TValue, TError> valueOrError,
     Action <TError> onError)
 {
     if (!valueOrError.hasValue)
     {
         onError(valueOrError.error);
     }
 }
 public static async Task OnSuccess <TValue, TError>(
     this IValueOrError <TValue, TError> valueOrError,
     Func <TValue, Task> onSuccess)
 {
     if (valueOrError.hasValue)
     {
         await onSuccess(valueOrError.value);
     }
 }
Example #4
0
 public static void OnSuccess <TValue, TError>(
     this IValueOrError <TValue, TError> valueOrError,
     Action <TValue> onSuccess)
 {
     if (valueOrError.hasValue)
     {
         onSuccess(valueOrError.value);
     }
 }
Example #5
0
 public static ValueOrError <T, TError> OnSuccess <TValue, TError, T>(
     this IValueOrError <TValue, TError> valueOrError,
     Func <TValue, T> onSuccess)
 {
     if (valueOrError.hasValue)
     {
         var value = onSuccess(valueOrError.value);
         return(ValueOrError <T, TError> .FromValue(value));
     }
     else
     {
         return(ValueOrError <T, TError> .FromError(valueOrError.error));
     }
 }
Example #6
0
 public static ValueOrError <TValue, T> OnError <TValue, TError, T>(
     this IValueOrError <TValue, TError> valueOrError,
     Func <TError, T> onError)
 {
     if (valueOrError.hasValue)
     {
         return(ValueOrError <TValue, T> .FromValue(valueOrError.value));
     }
     else
     {
         var error = onError(valueOrError.error);
         return(ValueOrError <TValue, T> .FromError(error));
     }
 }
        public static async Task <ValueOrError <T, TError> > OnSuccess <TValue, TError, T>(
            this IValueOrError <TValue, TError> valueOrError,
            Func <TValue, Task <T> > onSuccess)
        {
            if (valueOrError.hasValue)
            {
                var value = await onSuccess(valueOrError.value);

                return(ValueOrError <T, TError> .FromValue(value));
            }
            else
            {
                return(ValueOrError <T, TError> .FromError(valueOrError.error));
            }
        }
        public static async Task <ValueOrError <TValue, T> > OnError <TValue, TError, T>(
            this IValueOrError <TValue, TError> valueOrError,
            Func <TError, Task <T> > onError)
        {
            if (valueOrError.hasValue)
            {
                return(ValueOrError <TValue, T> .FromValue(valueOrError.value));
            }
            else
            {
                var error = await onError(valueOrError.error);

                return(ValueOrError <TValue, T> .FromError(error));
            }
        }
Example #9
0
 private ValueOrError(IValueOrError <TValue, TError> valueOrError)
 {
     this.valueOrError = valueOrError;
 }