// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the Apache 2.0 License. // See the LICENSE file in the project root for more information. using System.Threading.Tasks; namespace System.Reactive.Linq { partial class AsyncObservable { public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt32(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt32(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt32(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt32(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt32(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt32(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt64(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt64(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinInt64(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt64(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt64(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableInt64(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinSingle(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinSingle(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinSingle(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableSingle(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableSingle(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableSingle(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDouble(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDouble(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDouble(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDouble(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDouble(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDouble(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDecimal(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDecimal(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinDecimal(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source) { if (source == null) throw new ArgumentNullException(nameof(source)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDecimal(observer))); } public static IAsyncObservable Min(this IAsyncObservable source, Func selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDecimal(observer, selector))); } public static IAsyncObservable Min(this IAsyncObservable source, Func> selector) { if (source == null) throw new ArgumentNullException(nameof(source)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Create(observer => source.SubscribeSafeAsync(AsyncObserver.MinNullableDecimal(observer, selector))); } } partial class AsyncObserver { public static IAsyncObserver MinInt32(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinInt32(observer), selector); } public static IAsyncObserver MinInt32(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinInt32(observer), selector); } public static IAsyncObserver MinNullableInt32(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableInt32(observer), selector); } public static IAsyncObserver MinNullableInt32(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableInt32(observer), selector); } public static IAsyncObserver MinInt64(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinInt64(observer), selector); } public static IAsyncObserver MinInt64(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinInt64(observer), selector); } public static IAsyncObserver MinNullableInt64(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableInt64(observer), selector); } public static IAsyncObserver MinNullableInt64(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableInt64(observer), selector); } public static IAsyncObserver MinSingle(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinSingle(observer), selector); } public static IAsyncObserver MinSingle(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinSingle(observer), selector); } public static IAsyncObserver MinNullableSingle(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableSingle(observer), selector); } public static IAsyncObserver MinNullableSingle(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableSingle(observer), selector); } public static IAsyncObserver MinDouble(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinDouble(observer), selector); } public static IAsyncObserver MinDouble(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinDouble(observer), selector); } public static IAsyncObserver MinNullableDouble(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableDouble(observer), selector); } public static IAsyncObserver MinNullableDouble(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableDouble(observer), selector); } public static IAsyncObserver MinDecimal(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinDecimal(observer), selector); } public static IAsyncObserver MinDecimal(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinDecimal(observer), selector); } public static IAsyncObserver MinNullableDecimal(IAsyncObserver observer, Func selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableDecimal(observer), selector); } public static IAsyncObserver MinNullableDecimal(IAsyncObserver observer, Func> selector) { if (observer == null) throw new ArgumentNullException(nameof(observer)); if (selector == null) throw new ArgumentNullException(nameof(selector)); return Select(MinNullableDecimal(observer), selector); } } }