Пример #1
0
 public Func <Unit, int> Count(TryOptionAsync <A> ma) => _ =>
 Inst.Match(ma, x => 1, () => 0);
Пример #2
0
 public Task <Unit> MatchAsync(TryOptionAsync <A> opt, Func <A, Task> SuccAsync, Action Fail) =>
 opt.MatchAsync(
     SuccAsync: SuccAsync,
     Fail: Fail);
Пример #3
0
 static Task <bool> Eq <A>(TryOptionAsync <Task <A> > ma, TryOptionAsync <Task <A> > mb) =>
 EqAsyncClass <TryOptionAsync <Task <A> > > .EqualsAsync(ma, mb);
Пример #4
0
 public Task <B> MatchUnsafe <B>(TryOptionAsync <A> opt, Func <A, B> Succ, Func <B> Fail) =>
 opt.MatchUnsafe(
     Succ,
     None: () => Fail(),
     Fail: _ => Fail());
Пример #5
0
 public Task <B> MatchUnsafeAsync <B>(TryOptionAsync <A> opt, Func <A, Task <B> > SuccAsync, Func <Task <B> > FailAsync) =>
 opt.MatchAsync(
     SomeAsync: SuccAsync,
     NoneAsync: FailAsync,
     FailAsync: _ => FailAsync());
Пример #6
0
 public Task <S> BiFoldBackAsync <S>(TryOptionAsync <A> ma, S state, Func <S, A, Task <S> > SuccAsync, Func <S, Unit, Task <S> > FailAsync) =>
 default(MTryOptionFirstAsync <A>).MatchAsync(ma, x => SuccAsync(state, x), () => FailAsync(state, unit));
Пример #7
0
 public Task <B> Match <B>(TryOptionAsync <A> opt, Func <A, B> Succ, Func <B> Fail) =>
 opt.Match(
     Succ,
     None: Fail,
     Fail: _ => Fail());
Пример #8
0
 public Task <Unit> MatchAsync(TryOptionAsync <A> opt, Action <A> Some, Action None) =>
 opt.Match(
     Some,
     None: () => None(),
     Fail: _ => None());
Пример #9
0
 public static Aff <TryOptionAsync <A> > Sequence <A>(this TryOptionAsync <Aff <A> > mma) =>
 mma.Traverse(identity);
Пример #10
0
 public Task <B> MatchAsync <B>(TryOptionAsync <A> opt, Func <A, B> Some, Func <B> None) =>
 opt.Match(
     Some,
     None: () => None(),
     Fail: _ => None());
Пример #11
0
 public Task <B> MatchUnsafeAsync <B>(TryOptionAsync <A> opt, Func <A, Task <B> > Some, Func <Task <B> > None) =>
 opt.Match(
     Some,
     None: () => None(),
     Fail: _ => None());
Пример #12
0
 public Task <bool> IsSomeAsync(TryOptionAsync <A> opt) =>
 opt.Map(x => true).IfNoneOrFail(false);
Пример #13
0
 public Task <bool> IsUnsafeAsync(TryOptionAsync <A> opt) =>
 Task.FromResult(default(MTryOptionAsync <A>).IsUnsafe(opt));
Пример #14
0
 public Task <S> BiFoldBackAsync <S>(TryOptionAsync <A> ma, S state, Func <S, A, Task <S> > fa, Func <S, Unit, Task <S> > fb) =>
 default(MTryOptionAsync <A>).MatchAsync(ma, x => fa(state, x), () => fb(state, unit));
Пример #15
0
 public TryOptionAsync <A> Append(TryOptionAsync <A> x, TryOptionAsync <A> y) =>
 Plus(x, y);
Пример #16
0
 public static Aff <TryOptionAsync <B> > Sequence <A, B>(this TryOptionAsync <A> ta, Func <A, Aff <B> > f) =>
 ta.Map(f).Sequence();
Пример #17
0
 public Task <S> BiFoldBack <S>(TryOptionAsync <A> ma, S state, Func <S, A, S> Succ, Func <S, Unit, S> Fail) =>
 default(MTryOptionFirstAsync <A>).Match(ma, x => Succ(state, x), () => Fail(state, unit));
Пример #18
0
 public static ValueTask <TryOptionAsync <B> > Sequence <A, B>(this TryOptionAsync <A> ta, Func <A, ValueTask <B> > f) =>
 ta.Map(f).Sequence();
Пример #19
0
 public Task <bool> IsNone(TryOptionAsync <A> opt) =>
 opt.Map(x => false).IfNoneOrFail(true);
Пример #20
0
 public Task <int> GetHashCodeAsync(TryOptionAsync <A> x) =>
 default(HashableTryOptionAsync <EqA, A>).GetHashCodeAsync(x);
Пример #21
0
 public Task <B> MatchAsync <B>(TryOptionAsync <A> opt, Func <A, B> Succ, Func <Task <B> > FailAsync) =>
 opt.MatchAsync(
     Succ,
     NoneAsync: FailAsync,
     FailAsync: async _ => await FailAsync().ConfigureAwait(false));
Пример #22
0
 public Task <bool> EqualsAsync(TryOptionAsync <A> x, TryOptionAsync <A> y) =>
 default(ApplTryOptionAsync <A, bool>)
 .ApplyOption(default(EqOption <A>).Equals, x, y)
 .IfNoneOrFail(false);
Пример #23
0
 public Task <B> MatchUnsafeAsync <B>(TryOptionAsync <A> opt, Func <A, Task <B> > SuccAsync, Func <B> Fail) =>
 opt.MatchAsync(
     SuccAsync,
     None: Fail,
     Fail: _ => Fail());
Пример #24
0
 public TryOptionAsync <A> BindReturn(Unit _, TryOptionAsync <A> mb) =>
 mb;
Пример #25
0
 public Task <Unit> Match(TryOptionAsync <A> opt, Action <A> Succ, Action Fail) =>
 opt.Match(
     Succ,
     None: Fail,
     Fail: _ => Fail());
Пример #26
0
 public Func <Unit, Task <S> > FoldBackAsync <S>(TryOptionAsync <A> ma, S state, Func <S, A, Task <S> > f) => _ =>
 ma.MapAsync(a => f(state, a)).IfNoneOrFail(state);
Пример #27
0
 public Task <Unit> MatchAsync(TryOptionAsync <A> opt, Func <A, Task> SuccAsync, Func <Task> FailAsync) =>
 opt.MatchAsync(
     SuccAsync: SuccAsync,
     FailAsync: FailAsync);
Пример #28
0
 public Func <Unit, Task <int> > Count(TryOptionAsync <A> ma) => _ =>
 ma.Map(a => 1).IfNoneOrFail(0);
Пример #29
0
 public static TryOptionAsync <T> product <NUM, T>(TryOptionAsync <T> lhs, TryOptionAsync <T> rhs) where NUM : struct, Num <T> =>
 lhs.Product <NUM, T>(rhs);
Пример #30
0
 public S BiFoldBack <S>(TryOptionAsync <A> ma, S state, Func <S, A, S> fa, Func <S, Unit, S> fb) =>
 Match(ma, x => fa(state, x), () => fb(state, unit));