Example #1
0
        public static IMaybe <T> FirstOrNone <T>(this IEnumerable <T> enumerable)
        {
            try
            {
                var first = enumerable.FirstOrDefault();

                if (first.IsNull())
                {
                    return(MonadFunctions.none <T>());
                }
                else if (first.Equals(default))
Example #2
0
        public IResult <IEnumerable <T> > IfAllSuccesses()
        {
            var list = new List <T>();

            foreach (var result in enumerable)
            {
                handle(result);
                if (result.Out(out var value, out var original))
                {
                    list.Add(value);
                }
                else
                {
                    return(original.ExceptionAs <IEnumerable <T> >());
                }
            }

            return(MonadFunctions.success <IEnumerable <T> >(list));
        }
Example #3
0
 public Matching(IMatched <T> matched)
 {
     this.matched = matched;
     action       = MonadFunctions.none <Func <TResult> >();
 }
Example #4
0
 public static IMaybe <T> SomeIfNotNull <T>(this T obj) => MonadFunctions.when(!obj.IsNull(), () => obj);