Exemplo n.º 1
0
        public static Result <TResult, TMessage> SelectMany <TSuccess, TMessage, TValue, TResult>(
            this Result <TSuccess, TMessage> result,
            Func <TSuccess, Result <TValue, TMessage> > func,
            Func <TSuccess, TValue, TResult> mapperFunc)
        {
            Func <TSuccess, Func <TValue, TResult> > curriedMapper = suc => val => mapperFunc(suc, val);
            Func <
                Result <TSuccess, TMessage>,
                Result <TValue, TMessage>,
                Result <TResult, TMessage>
                > liftedMapper = (a, b) => Trial.Lift2(curriedMapper, a, b);
            var   v            = Trial.Bind(func, result);

            return(liftedMapper(result, v));
        }
Exemplo n.º 2
0
 public static Result <TResult, TMessage> Select <TSuccess, TMessage, TResult>(this Result <TSuccess, TMessage> result,
                                                                               Func <TSuccess, TResult> func)
 {
     return(Trial.Lift(func, result));
 }
Exemplo n.º 3
0
 public static Result <TResult, TMessage> SelectMany <TSuccess, TMessage, TResult>(this Result <TSuccess, TMessage> result,
                                                                                   Func <TSuccess, Result <TResult, TMessage> > func)
 {
     return(Trial.Bind(func, result));
 }
Exemplo n.º 4
0
 public static Result <IEnumerable <TSuccess>, TMessage> Collect <TSuccess, TMessage>(
     this IEnumerable <Result <TSuccess, TMessage> > values)
 {
     return(Trial.Collect(values));
 }