60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
// Licensed to the .NET Foundation under one or more agreements.
|
|
// The .NET Foundation licenses this file to you under the MIT License.
|
|
// See the LICENSE file in the project root for more information.
|
|
|
|
<#@ template debug="false" hostspecific="false" language="C#" #>
|
|
<#@ assembly name="System.Core" #>
|
|
<#@ import namespace="System.Linq" #>
|
|
<#@ import namespace="System.Text" #>
|
|
<#@ import namespace="System.Collections.Generic" #>
|
|
<#@ output extension=".cs" #>
|
|
// This code was generated by a T4 template at <#=DateTime.Now#>.
|
|
|
|
namespace System.Reactive.Linq
|
|
{
|
|
using ObservableImpl;
|
|
|
|
internal partial class QueryLanguage
|
|
{
|
|
<#
|
|
for (int i = 3; i <= 16; i++)
|
|
{
|
|
var parameters = string.Join(", ", Enumerable.Range(1, i).Select(j => "IObservable<TSource" + j + "> source" + j));
|
|
var genArgs = string.Join(", ", Enumerable.Range(1, i).Select(j => "TSource" + j));
|
|
var sources = string.Join(", ", Enumerable.Range(1, i).Select(j => "source" + j));
|
|
|
|
#>
|
|
public virtual IObservable<TResult> CombineLatest<<#=genArgs#>, TResult>(<#=parameters#>, Func<<#=genArgs#>, TResult> resultSelector)
|
|
{
|
|
return new CombineLatest<<#=genArgs#>, TResult>(<#=sources#>, resultSelector);
|
|
}
|
|
|
|
<#
|
|
}
|
|
#>
|
|
}
|
|
|
|
internal partial class QueryLanguageEx
|
|
{
|
|
<#
|
|
for (int i = 2; i <= 8; i++)
|
|
{
|
|
var parameters = string.Join(", ", Enumerable.Range(1, i).Select(j => "IObservable<TSource" + j + "> source" + j));
|
|
var genArgs = string.Join(", ", Enumerable.Range(1, i).Select(j => "TSource" + j));
|
|
var sources = string.Join(", ", Enumerable.Range(1, i).Select(j => "source" + j));
|
|
var tuple = "(" + string.Join(", ", Enumerable.Range(1, i).Select(j => "TSource" + j)) + ")";
|
|
var vals = string.Join(", ", Enumerable.Range(1, i).Select(j => "t" + j));
|
|
var selector = "(" + vals + ") => (" + vals + ")";
|
|
|
|
#>
|
|
public virtual IObservable<<#=tuple#>> CombineLatest<<#=genArgs#>>(<#=parameters#>)
|
|
{
|
|
return new CombineLatest<<#=genArgs#>, <#=tuple#>>(<#=sources#>, <#=selector#>);
|
|
}
|
|
|
|
<#
|
|
}
|
|
#>
|
|
}
|
|
}
|