Esempio n. 1
0
 public static bool IsSome <T>(this Option <T> @this)
 => @this.Match(
     () => false,
     (_) => true);
Esempio n. 2
0
 internal static T ValueUnsafe <T>(this Option <T> @this)
 => @this.Match(
     () => { throw new InvalidOperationException(); },
     (t) => t);
Esempio n. 3
0
 public static bool HasValue <TValue>(this Option <TValue> option)
 => option.Match(_ => true, () => false);
Esempio n. 4
0
 // utilities
 public static Unit Match <T>(this Option <T> @this, Action None, Action <T> Some)
 => @this.Match(None.ToFunc(), Some.ToFunc());
Esempio n. 5
0
 public static Option <T> OrElse <T>(this Option <T> left, Func <Option <T> > right)
 => left.Match(
     () => right(),
     (_) => left);
Esempio n. 6
0
 /// <summary>
 /// Convert a LanguageExt Option into an F# Option
 /// </summary>
 public static FSharpOption <T> ToFsOption <T>(Option <T> option) =>
 option.Match(() => FSharpOption <T> .None,
              v => FSharpOption <T> .Some(v));
 public static Task <TResult> MatchAsync <TValue, TResult>(this Option <TValue> option, Func <TValue, Task <TResult> > some, Func <Task <TResult> > none)
     where TValue : notnull
 => option.Match(some, none);
Esempio n. 8
0
 public static Task <T> GetOrElse <T>(this Option <T> opt, Func <Task <T> > fallback)
 => opt.Match(
     () => fallback(),
     (t) => Task.FromResult(t));
Esempio n. 9
0
 public static Option <TValue> OfType <TValue>(this Option <object> option)
 => option.Match(value => Option.Create(value is TValue, () => (TValue)value), Option.None <TValue>);
Esempio n. 10
0
 public static TValue?ToNullable <TValue>(this Option <TValue> option)
     where TValue : struct
 => option.Match(value => (TValue?)value, () => null);
Esempio n. 11
0
 public static Option <TValue> DefaultIfNone <TValue>(this Option <TValue> option, TValue defaultValue = default)
 => option.Match(Option.Some, () => Option.Some(defaultValue));
Esempio n. 12
0
 public static TValue ValueOrDefault <TValue>(this Option <TValue> option, TValue defaultValue = default)
 => option.Match(value => value, () => defaultValue);
Esempio n. 13
0
 public static Option <TResult> Bind <TValue, TResult>(this Option <TValue> option, Func <TValue, Option <TResult> > bind)
 => option.Match(bind, Option.None <TResult>);
Esempio n. 14
0
 public static T GetOrElse <T>(this Option <T> opt, T defaultValue)
 => opt.Match(
     () => defaultValue,
     (t) => t);
Esempio n. 15
0
 public static Task <Option <TResult> > BindAsync <TValue, TResult>(this Option <TValue> option, Func <TValue, Task <Option <TResult> > > bind)
 => option.Match(bind, () => Task.FromResult(Option.None <TResult>()));
Esempio n. 16
0
 public static T GetOrElse <T>(this Option <T> opt, Func <T> fallback)
 => opt.Match(
     () => fallback(),
     (t) => t);
Esempio n. 17
0
 public static bool HasValue <TValue>(this Option <TValue> option)
 => option.Match(DelegateCache <TValue> .True, DelegateCache.False);
Esempio n. 18
0
 public static Option <T> OrElse <T>(this Option <T> left, Option <T> right)
 => left.Match(
     () => right,
     (_) => left);
Esempio n. 19
0
 public static Option <R> Bind <T, R>
     (this Option <T> optT, Func <T, Option <R> > f)
 => optT.Match(
     () => None,
     (t) => f(t));
Esempio n. 20
0
 public static Option <T> Where <T>
     (this Option <T> optT, Func <T, bool> predicate)
 => optT.Match(
     () => None,
     (t) => predicate(t) ? optT : None);
Esempio n. 21
0
 public static Option <R> Map <T, R>
     (this Option <T> optT, Func <T, R> f)
 => optT.Match(
     () => None,
     (t) => Some(f(t)));
 public static TSome AssertSome <TSome>(this Option <TSome> option)
 => option.Match(s => s, () => throw new Exception("Option should be some."));
Esempio n. 23
0
        public static bool TryGetValue <TValue>(this Option <TValue> option, out TValue some)
        {
            some = option.Match(DelegateCache <TValue> .Passthrough, DelegateCache <TValue> .Default);

            return(option.Match(DelegateCache <TValue> .True, DelegateCache.False));
        }