Esempio n. 1
0
 /// <summary>
 /// If <paramref name="a"/>.Value is present, returns a list of that single value, otherwise an empty list
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="a"></param>
 /// <returns></returns>
 public static IEnumerable <T> ReturnList <T>(this Maybe <T> a)
 {
     if (a.IsSomething())
     {
         yield return(a.Value);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Calls <paramref name="fn"/> if <paramref name="m"/> has value, otherwise does nothing
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="m"></param>
 /// <param name="fn"></param>
 /// <returns></returns>
 public static Maybe <T> Do <T>(this Maybe <T> m, Action <T> fn)
 {
     if (m.IsSomething())
     {
         fn(m.Value);
     }
     return(m);
 }
Esempio n. 3
0
 /// <summary>
 /// Returns <paramref name="a"/> if its Value exists or returns <paramref name="b"/>
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Maybe <T> Or <T>(this Maybe <T> a, Maybe <T> b)
 {
     if (a.IsSomething())
     {
         return(a);
     }
     return(b);
 }
Esempio n. 4
0
 /// <summary>
 /// Returns <paramref name="a"/> if its Value exists or returns <paramref name="b"/>()
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Maybe <T> Or <T>(this Maybe <T> a, Func <Maybe <T> > b)
 {
     if (a.IsSomething())
     {
         return(a);
     }
     return(b());
 }
Esempio n. 5
0
 /// <summary>
 /// Returns <paramref name="a"/> if its Value exists or returns <paramref name="b"/>, wrapped as Maybe
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="a"></param>
 /// <param name="b"></param>
 /// <returns></returns>
 public static Maybe <T> Or <T>(this Maybe <T> a, T b)
 {
     if (a.IsSomething())
     {
         return(a);
     }
     return(b.ToMaybe());
 }
Esempio n. 6
0
 /// <summary>
 /// Calls <paramref name="fn"/> if <paramref name="m"/> has value, otherwise calls <paramref name="else"/>
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="m"></param>
 /// <param name="fn"></param>
 /// <param name="else"></param>
 /// <returns></returns>
 public static Maybe <T> Match <T>(this Maybe <T> m, Action <T> fn, Action @else)
 {
     if (m.IsSomething())
     {
         fn(m.Value);
     }
     else
     {
         @else();
     }
     return(m);
 }
Esempio n. 7
0
 /// <summary>
 /// Converts Maybe to corresponding Nullable
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="a"></param>
 /// <returns></returns>
 public static T?ToNullable <T>(this Maybe <T> a) where T : struct
 {
     return(a.IsSomething() ? a.Value : new T?());
 }